ネットサービスとかGoogleとか豆知識とか。

Index > Javascript > IEのGETクエリの最大長制限を思い知る
Javascript
2006年12月09日 02:31

IEのGETクエリの最大長制限を思い知る

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

Internet ExplorerにはURLに使える文字数は2038文字という制限がある。

Amazon E-Commerce Serviceでカートに複数アイテムを追加するときは、Item.1.ASIN=xxxxxxxxxx&Item.1.Quantity=1という形式のパラメータを複数与えなければならない。このリクエストをAjaxでサーバのプログラム経由で送るとき商品の数が多すぎると、このIEのGETの最大長に引っかかってしまう。

Firefoxでは正常に動作するのにIEではなぜか動かなくて、エンコードが原因だろうかとか色々調べた結果、送信しているクエリが長すぎただけだった。

scriptタグを生成してdocument.lastChild.appendChild(script)として、コールバック関数でJSONを処理させたかったのでGETクエリになっていた。POSTなら制限がないはずなので、prototype.jsを使ってPOSTメソッドで送信するようにしてみたのだが、うまくいかなかった。やり方がマズかったかな。それともAjaxでPOST送信する場合にはIEではGETと同じ最大長制限がつくのだろうか?

無理にAjaxでやる必要もないのだが、画面遷移のないアプリケーションにしたいのでこだわっている。

[追伸]
明日(というか今日)は百式 x Yahoo! 主催の忘年会議に参加してきます。そのあとの忘年会ももちろん参加で。