2012-03-23 22 views
3

ajaxのURLに追加できるパラメータの長さに制限はありますか?私は、Rubyでシンサーバーを使用して、この形式でWebブラウザからAJAX要求をしたのです:Ajax文字列の長さの制限?

io=new XMLHttpRequest(); 
io.open("GET","http://localhost:3000&v="+encodeURIComponent(JSON.stringify(v)),true); 

文字列vの長さは約7000バイトを超えた場合、クラッシュしているようです。それ以下では、うまくいくようです。私の見解は正しいのですか?制限はどこから来ていますか?シン、ジャバスクリプト、またはブラウザから私はGoogle Chromeブラウザを使用します。

+0

[AJAX GETリクエストのクエリ文字列の最大長は?](http://stackoverflow.com/questions/1344616/max-length-of-query-string-in-an-ajax-get-リクエスト) –

答えて

6

ajaxのURLに追加できるパラメータの長さには制限がありますか?

はい、GETリクエストを使用している場合、クライアントブラウザに依存する制限があります。この制限はAJAXとは関係ありません。 IIRCはIEのために4Kくらいでしたが、状況は変わったかもしれません。しかし、いずれにしても限界があります。限られたくない場合は、POSTを使用する必要があります。

+0

異なるリクエストタイプを使用する場合、制限時間は長くなりますか? – sawa

+0

@sawa、no。制限は使用しているブラウザによって異なります。 –

1

制限はブラウザから発生している可能性があります。 this discussionによれば、URLを約2000文字以下に保つようにしてください。

-2

文字バイトに応じてGET要求に制限があります。 ASCIIを使用する場合は、URL自体を含めて256文字です。 UTF-8の場合、1 utf文字は2バイトなので、実際には半分です。

しかし、この問題はPOSTでは発生しません。

+0

ありがとうございます。私はPOSTを使用します。 – sawa

+0

ああ、これは絶対に間違っています! – Philipp

+0

現在、URLの制限が延長されています。 2012年には、デフォルト設定がそれほど寛大ではないという制限がありました。 – Panagiotis

関連する問題