我有一个进行ajax调用的函数。 .done
似乎没有被解雇。我检查了控制台上的错误。它说
function getIncidentInfo() {
$.ajax({
type: "GET",
url: "../../page_components/statsboard/stats.php",
data: $(this).serialize(),
dataType: "json",
}).done(function(response) {
incidentAr = response;
for (var i in incidentAr) {
var zaNorth = parseInt(incidentAr[i].zaNorth);
......
}
}).fail(function(xhr, status, error) {
console.log("Status: " + status + " Error: " + error);
console.log(xhr);
});
}
我让我的朋友尝试使用相同的代码并且它有效。
答案 0 :(得分:0)
stats.php
中的脚本抛出了一个XDebug错误,并返回描述错误的HTML而不是您期望的JSON。在浏览器中加载stats.php
页面,或检查PHP日志以找出错误。
答案 1 :(得分:0)
.always(response)
而不是.done(response)
。某些服务返回非200代码,并带有响应正文来描述错误。response.responseJSON
,response.responseText
和response.responseXML
。您可能必须说明response.responseJSON = eval(respaonse.responseText)
。但是,我发现responseText
属于HTML类型,所以我的猜测(我说这是因为你获得200状态,而不是404或500)是你得到的更通用的服务器错误,它会从您不打算查询的路由中呈现响应。