Запрос-URI слишком большой [дубликат]

этот вопрос уже есть ответ здесь:

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

Request-URI Too Large

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

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

3 ответов


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

других решений:

  • используйте сообщение с формой (или скрытой формой и добавьте событие onclick по ссылке, которая его отправит)
  • Использовать Сессии. Когда сервер генерирует ссылку, сохраните ее в $_SESSION с уникальным идентификатором (или RID, это может быть md5 полного URI) и передайте его через 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 на самом деле имеет ограничение символов в зависимости от нескольких вещей. Вы можете проверить это на

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