gpt4 book ai didi

javascript - 需要捕获ajax跨域脚本加载错误

转载 作者:行者123 更新时间:2023-11-28 10:51:09 24 4
gpt4 key购买 nike

过去一个月我一直在处理这个问题,我已经阅读了 stackoverflow 上的几乎所有帖子,但没办法......我最好的方法是:

$.ajax({
url: "https://connect1.facebook.net/" + ('BR' == $('#country').val() ? 'pt_BR' : 'es_LA') + "/sdk.js",
dataType: "script",
cache: false,
xhr: function () {

var xhr = new window.XMLHttpRequest();

//Not working...
xhr.onerror = function(e) {
alert("Error Status: " + e.target.status);
};
//Frustration ends here...

return xhr;

}
})
.done(function(data) {
console.log("Ajax success");
init();
callback();
});

“connect1”使请求失败,但由于跨域请求的著名问题,我无法找到捕获错误的方法。我最好的选择是实现我自己的 xhr 对象,但 onerror 事件没有被触发。

我写这篇文章是因为任何新的或新鲜的想法都会对我有很大帮助。

更新:这是您可以用来复制请求的 URL,该请求原本会失败:https://connect1.facebook.net/es_LA/sdk.js?_=1445285186108

提前非常感谢。

吉列尔莫

最佳答案

要检查响应代码(与脚本错误不同),请将 statusCode 回调添加到您的 ajax。

$.ajax({
url: "https://connect1.facebook.net/" + ('BR' == $('#country').val() ? 'pt_BR' : 'es_LA') + "/sdk.js",
dataType: "script",
cache: false,
statusCode: {
404: function() {
alert( "page not found" );
}
},
xhr: function () {

var xhr = new window.XMLHttpRequest();

//Not working...
xhr.onerror = function(e) {
alert("Error Status: " + e.target.status);
};
//Frustration ends here...

return xhr;

}
})
.done(function(data) {
console.log("Ajax success");
init();
callback();
});

另外,由于 URL 看起来是 JS,并且您不反对使用 JQuery,为什么不使用 jQuery.getScript() 呢?

$.getScript( "https://connect1.facebook.net/" + ('BR' == $('#country').val() ? 'pt_BR' : 'es_LA') + "/sdk.js");

关于javascript - 需要捕获ajax跨域脚本加载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33222549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com