Question

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?

Was it helpful?

Solution

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)

OTHER TIPS

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>

Well an URI actually have a character limit depending on several things. You can check it out at

One workaround is to use POST instead of GET if you are the one developing the server too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top