2012-03-23 204 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