Я в основном пытаюсь проверить ход загрузки файла. Для этого я неоднократно опросу php-файла (progress_sess.php), который повторяет значение сеанса, которое изменяется в файле, обрабатывающем загрузку (export.php). Таким образом, есть один запрос ajax для export.php и несколько запросов ajax для progress_sess.php. Таким образом, я могу отобразить фазу, в которой в настоящее время находится скрипт загрузки файлов. Все хорошо работает в хроме. что ясно из запросов, вы можете увидеть изображение здесь: – запросы хрома .
В firefox Однако эта ошибка бросается: –
JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
Вы можете увидеть запрос здесь: – Запросы Firefox Когда я повторяю xhr.responseText в Firefox, он дает следующее:
""
Возможно, это связано с тем, что в Chromium, как вы можете видеть на изображении, запросами являются application / json, как указано в заголовке progress_sess.php, тогда как в firefox первый запрос для какой-то необъяснимой причины text / plain ?! Поэтому я не понимаю, почему firefox получает текстовый / обычный ответный заголовок.
Вы можете увидеть progress_sess.php: –
<?php session_id($_COOKIE['phpMyAdmin']); session_start(); header("Content-Type: application/json"); $result = $_SESSION['export_progress']; if ($result==null) { $result = ''; } $arr = array(progress_result=>$result, source=>'progress_sess.php'); echo json_encode($arr); ?>
Поэтому в принципе невозможно, что с моим json что-то не так. Поэтому я думаю, мой вопрос в том, почему он бросает json parse error, когда я явно указал заголовок? это из-за заголовка text / plain request или из-за некоторых различий ajax между firefox и chromium.
Похоже, что ваш ответ не является допустимой json-строкой. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse