问题
Got this error on a big $_GET
query in size ~9 000 symbols (they are divided into ~10 variables).
Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
What is a workaround for this problem?
回答1:
There is no workaround if you want pass all these info with GET without change server configuration.
Other solutions:
- Use POST with a form (or an hidden form and add onclick event at your link that submit it)
- Use Session. When the server generates the link, store it in $_SESSION with an unique id (or RID, it can be md5 of complete URI) and pass it via GET.
- Use Database or file storage (with the same procedure of session)
回答2:
This worked for me (it needs formData support):
<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>
回答3:
Well an URI actually have a character limit depending on several things. You can check it out at
- http://en.wikipedia.org/wiki/Query_string#Compatibility_issues
One workaround is to use POST instead of GET if you are the one developing the server too.
来源:https://stackoverflow.com/questions/9877744/request-uri-too-large