it-roy-ru.com

URI запроса слишком велик

Получил эту ошибку при большом запросе $_GET размером ~ 9 000 символов (они разделены на ~ 10 переменных).

Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.

Какой обходной путь для этой проблемы?

10
Jasper

Обходного пути нет, если вы хотите передать всю эту информацию с помощью GET без изменения конфигурации сервера.

Другие решения:

  • Используйте POST с формой (или скрытой формой и добавьте событие onclick по вашей ссылке, которая его отправит)
  • Используйте сессию. Когда сервер генерирует ссылку, сохраните ее в $ _SESSION с уникальным идентификатором (или RID, это может быть md5 полного URI) и передайте ее через GET.
  • Использовать базу данных или файловое хранилище (с той же процедурой сеанса)
8
Luca Rainone

Это сработало для меня (требуется поддержка 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>
1
nicolascolman

Ну, на самом деле URI имеют ограничение на количество символов в зависимости от нескольких вещей. Вы можете проверить это на

Одним из обходных путей является использование POST вместо GET, если вы также разрабатываете сервер.

0
Croo