如果返回数据类型不是 html ,如何返回 .fail()的回调?
$.ajax({
type: "GET",
dataType: "html",
url: "server.php",
async: true,
beforeSend: function() {
},
success: function (returndata) {
console.log(returndata); // I will get {"message":"something"}
}
}).fail(function(jqXHR) { // this callback does not work
alert("error");
});
例如,在server.php
,
header('Content-Type: application/json');
echo '{"message":"something"}';
我会{"message":"something"}
而不是error
;
任何想法?
修改
$.ajax({
type: "GET",
dataType: "xml",
url: "server.php",
async: true,
beforeSend: function() {
},
success: function (returndata) {
console.log(returndata); // I will get {"message":"something"}
}
}).fail(function(jqXHR) { // this callback does not work
alert("error");
});
如果我将dataType:
更改为“xml ”,它会在预期的xml时返回错误(这就是我想要的) - 为什么它不能同时工作“html”的方式?
答案 0 :(得分:-1)
检查您的服务器是否将JSON作为纯文本编码或application / JSON进行响应。如果是JSON,请使用error()方法而不是fail()。如果内容类型不匹配,它将转到错误方法。这是一个例子。
$.ajax({
type: "GET",
dataType: "JSON",
url: "google.com",
async: true,
success: function(data) {
},
error: function(err) {
console.log("Err", err)
}
});
上面的代码可以正常使用错误方法,如果内容类型是html则转到错误。在您的方案中尝试此操作。