MacのFireFox3にて画面を表示させるとサーバへ2度リクエストを送信してしまうという問題が発生し、解決できず困っております。


<form action="xxx.php" method="post">
<input type="hidden" name="hoge" value="値" />
<input type="submit" value="送信" />
</form>
上記の記述がなされたHTMLページにて「送信」ボタンを押下すると、
・POSTとしてリクエストされる(hidden項目が取得できる)
・GETとしてリクエストされる(hidden項目は取得できない)
という2リクエストがxxx.phpへきます。

また、xxx.phpにてsleep関数を使うと
1.POSTのリクエストくる
2.sleep関数が実行される
3.sleep関数の終了(xxx.phpの処理終了)を待ってからGETのリクエストがくる
という動作になります。
なおxxx.phpはsleep以外に「表示完了」という文字列を表示させる処理のみです。

リクエストヘッダ等はメモっていませんので不明ですが(ただしGETのリクエストも普通のリクエストっぽい)、このケースについての解決策をご回答いただきたく思います。

■クライアントの環境
OS:Mac OS X v10.5.7
ブラウザ:FireFox 3.0.11

■サーバの環境
Windows XP SP3
Apache2
PHP 5.2.?

回答の条件
  • 1人2回まで
  • 登録:2009/06/12 23:47:38
  • 終了:2009/06/15 21:49:51

回答(4件)

id:QuestR2 No.1

QuestR2回答回数435ベストアンサー獲得回数132009/06/13 02:59:30

ポイント25pt

>GETのリクエストも普通のリクエストっぽい

とりあえず、リクエストを受ける側でPOSTでないものは無視することで回避されると思います。

>・GETとしてリクエストされる(hidden項目は取得できない)

この現象から見て、このフォームからのリクエストでないと思われます。

ほかにこのページにフォームとかボタンとかありませんか?

id:kiku-_-san

>とりあえず、リクエストを受ける側でPOSTでないものは無視することで回避されると思います。

根本的な解決策が見つからない状態ですので、こちらの対応方法も視野に入れさせていただきます。

ありがとうございます。

>ほかにこのページにフォームとかボタンとかありませんか?

質問文に書かせていただいたHTMLの記述のみです。

2009/06/13 09:51:48
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/06/13 08:31:44

ポイント45pt

手元の MacOS X 10.5.7 + Firefox 3.0.11 では再現しませんでした。

条件は違いますが、Windows版ではバグ報告が上がっています⇒Fx3以降のバージョンでリクエストが同時に2度投げられてしまう


というわけで、ご質問のHTMLの部分以外で、何かお心当たりはありませんか? たとえば、別のformがあるとか、JavaScriptがあるとか。

「GETとしてリクエストされる(hidden項目は取得できない)」とのことですが、ご質問のHTMLですと、hidden項目以外に取得できるデータはないと思います。


また、Firefoxアドオンの「Live HTTP Headers」でリスクエストの状況を確認してみてください。

id:kiku-_-san

動作確認までしていただき、ありがとうございます。

HTMLについては質問文へ記載させていただいたもののみです。

OSやブラウザ自体のバージョンではなく、もしかしたらアドオンが影響しているかもしれません。

すぐには問題の端末が触れない状況ですので確認次第、コメント欄にて報告させていただこうと思います。

2009/06/13 10:13:01

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 kntr1 82 74 14 2009-06-13 00:01:06
2 りゅう 30 25 2 2009-06-13 17:07:48
  • id:kiku-_-san
    本件についての原因が判明しました。
    原因はFireFoxのアドオンである
     YSlow2.0.0b
    です。

    Firebugと組み合わせた際、リクエストを2度投げます。
    アドオンの無効化で正常な動作が確認出来たため、削除を行いました。

    この度は誠にありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません