POSTがPOST元のページにリダイレクトされる場合の問題
つぎのような仕組みで、POSTがもとのページにリダイレクトされるような仕組みを作成することがある。
#!/usr/bin/perl if($ENV{"REQUEST_METHOD"} eq "POST") { print<<"EOF"; Content-Disposition: inline; filename="test.aaa" Content-Type: application/aaa EOF system("cat test.aaa"); } else { print<<"EOF"; Content-Type: text/html Cache-Control: no-cache <html> <body> <form method="POST" action="test.pl"> <input type="hidden" name="dummy" value="test"> <input type="submit" value="submit"> </form> </body> </html> EOF }
このような場合に、うちの会社で作っていたMIMEタイプハンドラのActiveXが正しくリクエストをハンドリングできなかった。調査したところ、一般的なActiveXでもうまくいかないことが分かった。こういう場合、通常は、ActiveXのSRCプロパティに対して、正しいURLが渡されることを期待するのだが、意味が分からないことに、SRCプロパティには、IEのキャッシュにあるとおぼしきファイルのローカルパスが渡される。さらに、そのファイルは実は存在しない。こういう問題に出くわすのは、何もうちの会社のプラグインに限らず、Flashなどでもそうだったが、Adobe Readerだけはちゃんと動作していた。