我很难弄清楚我的js脚本失败的原因。我从服务器请求几个json对象。它适用于chrome,firefox和IE,但是在移动safari上它失败了。我使用纯js而不使用jQuery。
我得到的错误如下:
第31行的Javascript错误: SyntaxError:解析错误
第78行的Javascript错误: SyntaxError:解析错误
第52行的Javascript错误: ReferenceError:无法找到变量:init
有问题的行如下
31:
[ "$(...)" ]
78:
for (var i = 0; i < res.class.length; i++)
52:
res.class = JSON.parse(response).classes;
请注意,这些行来自2个不同的js文件。 loadData回调只解析响应。
这是getData函数:
function init()
{
getData(loadData, "./js/data/classes.json");
}
顺序顺序应该是这样的
1)onload call init()
2)init通过ajax加载json文件
3)解析json
4)访问已解析的对象
我做了一些研究,发现了某种格式检测&#34;元标记,然而这并没有帮助。
以下是json的示例条目。
function getData(callback, filePath){
var xhttp = new XMLHttpRequest();
var response;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200){
callback(xhttp.responseText);
}
};
xhttp.open("GET", filePath, true);
xhttp.overrideMimeType("application/json");
xhttp.send();
}
我的猜测是JSON解析器在某些地方失败了。