ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Webプログラミングについて語るコミュのブラウザ間の挙動の差異に関して

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お世話になります。

現在、CatalystをフレームワークとしてPerlでのWebアプリの開発をしております。
その過程でぶつかった問題なのですが、Firefox(ver2 or ver3)でフォーム入力内容をPOSTする動作が妙なことに気がつきました。

ごくごく普通のフォーム構成なのですが、下記のような、

<form action="/foo/bar" method="post">
<input ...
<input ...
</form>
というフォームで、<input type="submit" ....>を最後にキックしたときに、Firefoxは
Webサーバに対して、inputタグで指定されたパラメータを含んだPOSTを実行したのちに
なぜか、続けてパラメータが空で、同じURLに対してGETを実行するのです。
確認方法は、Catalystの吐くログと、Wiresharkでのパケットダンプ双方で行いました。

IE7、Safari(3.2.1)で確認したところ、そのような動作はせず、ちゃんとPOSTを一回
実行します。

この様なFirefoxの挙動に関して、お心当たりのある方、原因をご存知の方がいらっしゃい
ましたら、ご教授をお願いいたします。

動作環境は下記のとおりです。
【サーバ】
・OS: FreeBSD 6.3 RELEASE
・Perl: ver.5.8.8
・Catalyst: 5.7010
【クライアント】
・OS: Windows XP SP3
・Firefox ver.3.0.5

コメント(2)

Catalystのことは知らないのですが、サーバからのレスポンスのヘッダにLocationが入っていませんか?
確か、IEだとリダイレクトを省略する(GETリクエストを投げない)ことがあった様な記憶があります。
めいびんさん>

ご返答どうもありがとうございます。
POST、GETいずれもレスポンスのステータスコードは200番台で、300番台は
出現しませんでした。
本件、パケットダンプの内容で確認いたしましたが、POSTリクエストに対するレスポンスのヘッダは

200 OK
Connection: close
Date: Thu, 25 Dec 2008 09:00:33 GMT
Content-Length: 5387
Content-Type: text/html; charset=euc-jp
Set-Cookie: menbo_session=59f9f00f6ef722fca4a0c2b5b6b0f21e0c07e28d; path=/; expires=Thu, 25-Dec-2008 10:00:33 GMT
Status: 200
X-Catalyst: 5.7010

GETリクエストに対するレスポンスのヘッダ内容は

HTTP/1.0 200 OK
Connection: close
Date: Thu, 25 Dec 2008 09:00:32 GMT
Content-Length: 15754
Content-Type: text/html; charset=euc-jp
Set-Cookie: menbo_session=59f9f00f6ef722fca4a0c2b5b6b0f21e0c07e28d; path=/; expires=Thu, 25-Dec-2008 10:00:32 GMT
Status: 200
X-Catalyst: 5.7010

です。POSTより先にGETが発行されるところが、また不思議です。
また何かお心当たりがあればよろしくお願いいたします。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Webプログラミングについて語る 更新情報

Webプログラミングについて語るのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。