【发布时间】:2013-09-22 18:29:11
【问题描述】:
当 AJAX 请求被提交到站点时,使用 jQuery 承诺方法可以轻松处理服务器端错误。 .done()、.fail() 等。但是对于某些请求(例如,对无效站点或不接受跨域请求的站点),在进行调用时会立即发生异常。这是控制台中一个错误的示例:
XMLHttpRequest 无法加载
http://someotherserver/api/blahblah。起源 Access-Control-Allow-Origin 不允许http://localhost:52625。
是的,我知道 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 块中似乎是合理的,但这似乎没有帮助。
我找到了this question,但解决方案涉及破解 jQuery 代码。肯定有更好的方法来捕获这些错误并且不会阻塞控制台日志??
【问题讨论】:
-
我认为不可能,因为错误记录是由浏览器网络监控层完成的
-
小型临时服务器将部署在野外营地环境中。我的用户将需要为 ajax Web api 调用设置服务器 IP 地址的选项。我需要一种方法来测试地址是否有效。如果有更好的方法,我很高兴听到它。 :)
-
检查stackoverflow.com/questions/377644/…,也许你会得到你的解决方案。
-
@ripa:恐怕不会——错误是在任何服务器端代码运行之前生成的。
-
@AR。在 ajax 发布错误到来之前!!!! :(
标签: javascript jquery ajax error-handling