我有一个如下的AJAX调用:
$.ajax({
type: "get",
url: "xxx.xxx.xxx/xxx.js",
dataType: 'jsonp',
success: function(data) {
console.log("success");
}
}).done(function(data){
console.log("done");
}).fail(function(data){
console.log("fail");
}).always(function(){
console.log("always")
});
当呼叫成功时,success
和done
功能运行。但是,当调用失败时(比如当我将url更改为gobbledygook时)没有运行,甚至没有运行always
。
这种行为发生在Firefox和Chrome中。
我见过很多其他人提到JSONP
存在问题,接受的答案是说async: false
可以使用,async: false
也不async: true
1}}工作。
这里似乎有什么问题?
答案 0 :(得分:0)
有效的解决方法是添加timeout
。
$.ajax({
type: "get",
url: "xxx.xxx.xxx/xxx.js",
dataType: 'jsonp',
success: function(data) {
console.log("success");
},
timeout: 5000
}).done(function(data){
console.log("done");
}).fail(function(data){
console.log("fail");
}).always(function(){
console.log("always")
});
然后在5秒后,错误/始终有效。