这是抽象方式的问题,我有多个IP。我想知道服务器所在的IP。服务器托管一个json文件以帮助处理JSONP请求。
for (index = 0; index < ipArray.length; ++index) {
var ip = ipArray[index];
$.ajax({
url: utils.getJSONPRequestURL(ip),
jsonpCallback: 'callback',
dataType: "jsonp",
success: function (data) {console.log(this.url)}
});
}
如果IP无法访问,上述功能正常工作,它将调用成功函数,该函数打印成功的URL。但是,如果一个调用返回net :: ERR_NETWORK_ACCESS_DENIED错误。我根本不会得到成功的回调。
请注意,如果我从ajax请求中删除jsonpCallback选项并定义
window.callback = function(data) {console.log(data)}
尽管存在上述错误,但仍会调用此函数,但我不知道从哪个URL获取此回调。
提前谢谢
答案 0 :(得分:0)
尝试对ajax函数进行以下修改:
$.ajax({
url: utils.getJSONPRequestURL(ip),
jsonpCallback: 'callback',
dataType: "jsonp",
success: function (data) {console.log(this.url)}
}).done(function(){
console.log("done");
});
无论通话成功与否,都应触发完成功能。