F.Ko-Jiの「一秒後は未来」

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

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! 主催の忘年会議に参加してきます。そのあとの忘年会ももちろん参加で。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など