发送URL长度约为4950个字符的请求。
获取以下XMLHTTPRequest.ResponseText:
ERROR
The requested URL could not be retrieved
While trying to retrieve the URL: ##my long url##
The following error was encountered:
Invalid URL
Some aspect of the requested URL is incorrect. Possible problems:
Missing or incorrect access protocol (should be `http://'' or similar)
Missing hostname
Illegal double-escape in the URL-Path
Illegal character in hostname; underscores are not allowed
Your cache administrator is webmaster.
但是当我在浏览器中输入相同的网址时,它的工作正常。我检查了可能的错误(在响应文本中列出) - 一切都好。
当参数数量小于〜200时,脚本可以工作,因此线索必须在某些限制内。另一方面,apache或php或js中没有任何设置。
任何建议或我应该在哪里寻找(一些额外的配置或其他什么)解决方案?
答案 0 :(得分:2)
发送URL长度约为4950个字符的请求。
无论如何,这对Internet Explorer来说太过分了。也可能是Opera,IIRC对GET请求的限制为4096字节。
您应该使用POST来获取此数据量。
答案 1 :(得分:0)
如果网址超过大约4000个字符(请求行为capped to 8190 bytes),Apache会回复413 Entity Too Large
。
使用LimitRequestLine指令无济于事,如果您绝对想要发送大型GET请求,则必须使用-D DEFAULT_LIMIT_REQUEST_LINE=some huge value
重新编译Apache。
编辑:关于~4000字符上限的一些想法:8190
看起来很像8192 with two bytes reserved for the string terminator
,所以Apache很有可能使用UCS-2或类似于商店请求行,因为DEFAULT_LIMIT_REQUEST_LINE
以字节表示,而不是字符。
这会为每个请求行提供4095个字符的上限,即最大网址长度为4079个字符(考虑到最初的GET
和最后的CR/LF
对),这是有意义的。< / p>