2012-03-23 262 views
3

是否有可以添加到URL爲Ajax參數的長度限制?我使用Ruby的瘦服務器,並沒有從網絡瀏覽器這種格式Ajax請求:Ajax字符串長度限制?

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

當串v的長度超過7000個字節,它似乎崩潰。當少時,它似乎工作。我的觀察是否正確?限制來自哪裏?從瘦,Javascript或瀏覽器?我使用Google Chrome瀏覽器。

+0

[AJAX GET請求中查詢字符串的最大長度是多少?](http://stackoverflow.com/questions/1344616/max-length-of-query-string-in-an-ajax-get-請求) – 2012-03-23 15:14:14

回答

6

是否有可以添加到URL的參數的長度限制爲Ajax?

是的,如果您正在使用GET請求,則會有一個限制取決於客戶端瀏覽器。而這個限制與AJAX無關。 IIRC對IE來說大約是4K,但事情可能已經改變了。但無論如何都有一個限制。如果你不想被限制,你應該使用POST。

+0

如果我使用不同的請求類型,限制會變得更長嗎? – sawa 2012-03-23 15:14:25

+0

@sawa,no。限制取決於您使用的瀏覽器。 – 2012-03-23 15:14:59

1

限制很可能來自瀏覽器。根據this discussion你應該儘量保持你的網址約2000字符。

-2

取決於字符字節,GET請求有限制。 如果使用ASCII,則它是256個字符,包括url本身。對於UTF-8,它實際上是一半,因爲1 utf字符是2字節長。

雖然在POST上你不會有這個問題。

+0

謝謝。我將使用POST。 – sawa 2012-03-23 15:24:32

+0

哦,不,這簡直是絕對錯誤! – Philipp 2016-07-23 19:41:35

+0

現在真的url限制已被擴展。早在2012年,默認配置就不那麼寬鬆了。 – Panagiotis 2016-07-24 15:50:24