每次我运行我的ajax jquery函数时都会出错,这适用于我所有的ajax调用。 这是我的代码的一个例子
function FindContact(CompanyName,DivisionName,FirstName,LastName) {
$.ajax({
url: 'Path',
dataType: "json",
async:false,
type:'post',
data: {'FirstName':FirstName,'LastName':LastName,'DivisionName':DivisionName,'CompanyName':CompanyName},
success: DisplayContacts,
error: ErrorMsg
});
}
解决这个问题我用这个
function ErrorMsg(result) {
if (result.status == 200 && result.statusText == 'OK') {
DisplayContacts(result);
}
else {
alert("FAILED : " + result.status + ' ' + result.statusText);
}
}
这很难,因为我需要为每个ajax请求创建这样的方法。
为什么它运行错误代码1st ???
请帮忙!
答案 0 :(得分:49)
确保您返回的内容是有效的json。如果不是,并且服务器上的一切正常,$ .ajax将会出错而不是成功。
function FindContact(CompanyName,DivisionName,FirstName,LastName) {
$.ajax({
url: 'Path',
dataType: "html or json",
async:false,
type:'post',
data: {'FirstName':FirstName,'LastName':LastName,'DivisionName':DivisionName,'CompanyName':CompanyName},
success: DisplayContacts,
error: ErrorMsg
});
}
快速检查json是否有效只是将dataType切换为html并看到成功被触发。如果它比你的json无效,如果你仍然得到同样的问题那么其他错误。
另一种检查是否返回有效json的方法是,打开firebug,当请求被发送时,单击响应选项卡,复制响应并到达jsonlint.com以检查其是否有效。
答案 1 :(得分:3)
我的解决方案是Accept-Type和Content-Type标头的不同之处。如果客户端请求的Accept-Type标头与服务器端响应的Content-Type标头不匹配,则Jquery将调用错误回调。
默认情况下,Jquery将Accept-Type标头设置为application/json
。但是,我的服务器发送了一个Content-Type application/x-javascript
的响应。我的修复是将服务器端响应Content-Type标头更改为相应的application/json
。
答案 2 :(得分:2)
使用jquery ajax进行ajax调用时遇到了同样的问题。我使用以下代码修复它:
A[i]
注意: dataType:'text'参数,它对我有用。