У меня есть некоторый код 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');
}