gpt4 book ai didi

javascript - 如何捕获 jQuery AJAX 错误?

转载 作者:行者123 更新时间:2023-12-03 21:40:51 26 4
gpt4 key购买 nike

当 AJAX 请求提交到站点时,可以使用 jQuery Promise 方法轻松处理服务器端错误。 .done().fail() 等。但是,对于某些请求(例如,发送到无效站点或不接受跨源请求的站点),调用时立即发生异常。以下是控制台中一个错误的示例:

XMLHttpRequest cannot load http://someotherserver/api/blahblah. Origin http://localhost:52625 is not allowed by Access-Control-Allow-Origin.

是的,我了解 CORS...这不是问题。我实际上正在做的是尝试 Web api 调用来测试服务器 IP/名称是否正确

我知道 jQuery 请求语法中的 error 选项:

$.ajax({
url: remoteURL,
type: 'GET',
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
}).etc.etc.

错误已在此处处理,但异常仍记录在控制台中。将以上内容包装在 try-catch block 中似乎是合理的,但这似乎没有帮助。

我找到了this question ,但解决方案涉及破解 jQuery 代码。当然有更好的方法来捕获这些错误而不堵塞控制台日志?

最佳答案

试试这个:

$.ajax({
url: remoteURL,
type: 'GET',
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
}).always(function(jqXHR, textStatus) {
if (textStatus != "success") {
alert("Error: " + jqXHR.statusText);
}
});

XHR 监听器:

$.ajax({
url: remoteURL,
type: 'GET',
xhr: function(){
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("error", function(evt){
alert("an error occured");
}, false);
xhr.addEventListener("abort", function(){
alert("cancelled");
}, false);

return xhr;
},
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
});

关于javascript - 如何捕获 jQuery AJAX 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18864734/

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