Я пытаюсь отправить данные POST, которые составляют 2 миллиона символов (не двоичная строка) через ajax (jQuery), и он всегда появляется как пустой на стороне PHP. Вот мой код:PHP/Apache/AJAX - ограничение POST?
var string = "<data string that is 2M chars long>";
$.ajax({
cache: false,
type: 'POST',
url: 'data.php',
data: {'data_string': string}
});
На стороне PHP, я получаю следующее сообщение об ошибке (при попытке извлечь данные из $_POST['data_string']
):
Notice: Undefined index: data_string in data.php on line ...
Я проверил post_max_size
в php.ini , и он установлен на 256M, что должно быть более чем достаточно? Я в тупик, и не уверен, что я делаю неправильно ...
EDIT: Если я "string"
небольшое количество данных (например, var string = 'test'
) затем $_POST["data_string"]
возвращается test
, как и ожидалось. Поэтому мне интересно, есть ли какой-то предел данных, который я достигаю в Apache2, PHP или в самом браузере? Я использую Google Chrome 17.0.963.79
edit2: memory_limit = 256M
в php.ini
EDIT3: max_input_time = -1
в php.ini
EDIT4: var_dump ($ _ POST) возвращает массив (0)
EDIT5: работает последняя стабильная версия PHP5 на debian squeeze: PHP 5.3.3-7 + squeeze8 с Suhosin-Patch (cli) (построено: 10 февраля 2012 14:12:26)
Сохраняется ли та же ошибка при значительно меньших строк, таких как 'test'? Неопределенный индекс показывает, что он не публикуется. – MetalFrog
нет, ошибка не сохраняется с небольшими текстовыми данными. –
Попробуйте 'var_dump ($ _ GET); var_dump ($ _ POST); 'если нет ничего, проверьте файлы конфигурации apache для возможных ограничений – Robus