Вызов AJAX возвращает 403, когда отправленный массив превышает заданную длину - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть некоторый код jQuery, отправляющий данные через вызов AJAX в сценарий PHP.

Данные состоят из объекта с двумя свойствами.

Одним из свойств является строка, полученнаяна JSON.strinfigy(arrayofobjects) массив объектов.Каждый объект в arrayofobjects содержит 3 свойства, каждое из которых представляет собой простую строку.Количество объектов в arrayofobjects является переменной величиной, основанной на некоторых действиях пользователя.

Проблема заключается в том, что когда arrayofobjects превышает число 25 объектов, вызов AJAX завершается неудачно и возвращает 403 Forbidden, поэтому любая отладканевозможно.

Кажется, что строка, полученная из JSON.stringify и отправленная через AJAX ovverides максимальной длины.

Веб-сервер Apache2, работающий в Ubuntu 18.04.Не используется PHP-фреймворк.

Что я пробовал:

  • Модуль Apache mod_security не активен
  • В php.ini: display_errors = On, log_errors = Onи error_reporting = E_ALL
  • Установить разрешения на запись для каждого пользователя в apache2 / error.log
  • Регулярно работающий apache2 / error.log, но никаких следов проблем, связанных с AJAX, никаких следов 403 ошибка
  • URL-адрес вызываемого сценария правильный
  • Это не междоменный вызов
  • Разрешения на файл действительны, так как сценарий успешно вызывается в других случаях и когда arrayofobjects содержит менее 25 элементов
  • Я могу получить доступ к вызываемой странице напрямую через http
  • Увеличенное значение max_input_vars в php.ini

Структура AJAXЗвоните:

$.ajax({
url: "ajax/called_page.php",
type: 'post',
data: {action: "post_duty", content: JSON.stringify(arrayofobjects)},
dataType: "json",
success: function(data) {
 do some DOM manipulation
}, error: function() {
 alert('Contact webmaster');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...