在一个大小约为9000个符号(它们被划分为约10个变量)的大型$_GET
查询中出现此错误。
Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
这个问题的解决方法是什么?
如果您想在不更改服务器配置的情况下通过GET传递所有这些信息,则没有解决方法。
其他解决方案:
- 将POST用于表单(或隐藏表单,并在提交表单的链接处添加onclick事件)
- 使用会话。当服务器生成链接时,将其存储在具有唯一id(或RID,它可以是完整URI的md5)的$_SESSION中,并通过GET传递
- 使用数据库或文件存储(使用与会话相同的过程)
这对我有效(它需要formData支持):
<script>
//Load form
var formData = new FormData();
formData.append("param_name1", "param_content1");
formData.append("param_name2", "param_content2");
formData.append("param_nameN", "param_contentN");
//Send form via AJAX
var xhr = new XMLHttpRequest();
xhr.open("POST", YOUR_URL);
xhr.send(formData);
</script>
URI实际上有一个字符限制,这取决于以下几点。你可以在上查看
- http://en.wikipedia.org/wiki/Query_string#Compatibility_issues
如果您也是开发服务器的人,一种解决方法是使用POST而不是GET。