我有一个简单的HTML页面,可加载jquery 3.3.1和外部脚本文件script.js。我正在运行一个服务于静态页面的简单节点http-server。 data.json也位于HTML文件的同一文件夹中。但是当下面的ajax调用完成时,我可以看到在网络调用中请求成功,但是,从未调用过ajax调用的成功回调。为什么?
$( document ).ready(function() {
// Get data from json file
$.ajax({
url: 'data.json',
dataType: 'json',
success: function (data) {
console.log(data);
},
error: function (xhr) {
alert('Error: ' + xhr.statusText);
}
});
});
<html>
<head>
<title>BW Chart</title>
<script src="jquery-3.3.1.min.js"></script>
<script src="script.js"></script>
</head>
<body>
</body>
</html>
我可以看到它的调用错误函数,但是为什么即使在状态200上它也可以调用错误函数
data.json
[{name:"Object 1",
hot:12,
warm:5,
cold:56,
pHot:85,
pWarm:52,
pCold:25
},{name:"Object 2",
hot:14,
warm:55,
cold:23,
pHot:89,
pWarm:14,
pCold:56
},{name:"Object 3",
hot:56,
warm:45,
cold:26,
pHot:85,
pWarm:41,
pCold:36
},{name:"Object 4",
hot:15,
warm:56,
cold:47,
pHot:25,
pWarm:28,
pCold:19
},{name:"Object 5",
hot:18,
warm:52,
cold:12,
pHot:46,
pWarm:52,
pCold:73
}]
答案 0 :(得分:1)
您的script.js
看起来不错,那里没有错误。但是,如果浏览器无法解析JSON,则您的jQuery Ajax调用的success
方法将无法执行。确保您的data.json
是有效的JSON并且不包含任何语法错误...
例如,在JSON文件中,所有属性名称都应加双引号。