Я в основном пытаюсь проверить ход загрузки файла. Для этого я неоднократно опрашиваю 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 Requests
Когда я повторяю 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, когда я явно указал заголовок? это из-за заголовка запроса text / plain или из-за различий в ajax между firefox и chromium.
Похоже, ваш ответ не является допустимой строкой json. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
Других решений пока нет …