我基本上是在尝试检查文件下载的进度。为此,我反复轮询一个php文件(progress_sess.php),该文件回显处理下载(export.php)的文件中正在更改的会话值。所以有一个ajax请求export.php和多个ajax请求到progress_sess.php。这样我就可以显示文件下载脚本当前所处的阶段。 一切都在铬很好。 从请求中可以清楚地看到,您可以在此处看到图片: - Chromium Requests。
在firefox中但是抛出了这个错误: -
JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
您可以在此处查看请求: - Firefox Requests 当我在Firefox中回显xhr.responseText时,它会给出: -
""
这可能是因为在图像中你可以看到Chromium中的请求是application / json,正如progress_sess.php标题中指定的那样,而在firefox中,第一个请求是出于某些莫名其妙的原因text / plain?!所以我不明白为什么firefox会得到一个text / plain响应头。
你可以看到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请求头,还是由于firefox和chrome之间存在一些ajax差异。
答案 0 :(得分:0)
似乎您的响应不是有效的json-string。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse