abort() 触发 Chrome 中未定义错误
我使用以下代码来限制竞争条件下的 get 请求:
if (currentAjaxRequest !== null) {
currentAjaxRequest.abort();
}
var query_string = getQuery();
currentAjaxRequest = $.get(query_string, function(data, textStatus, xhr) {
if (xhr.status) {
currentAjaxRequest = null;
// do stuff
}
});
我注意到在 Chrome 中,当调用中止时,javascript 控制台中会弹出一个错误:
GET undefined (未定义)
这似乎根本不会影响脚本- 一切都继续正常进行。我应该采取什么措施来纠正这个问题吗?或者这就是 chrome 报告中止的 ajax 请求的方式?
感谢您的帮助
I use the following code to throttle get requests in race conditions:
if (currentAjaxRequest !== null) {
currentAjaxRequest.abort();
}
var query_string = getQuery();
currentAjaxRequest = $.get(query_string, function(data, textStatus, xhr) {
if (xhr.status) {
currentAjaxRequest = null;
// do stuff
}
});
I've noticed that in Chrome that when the abort is called an error pops up in the javascript console:
GET undefined (undefined)
This does not seem to impact the script at all - everything continues to run just fine. Is there anything I should be doing to correct this? Or is this just the way chrome reports an aborted ajax request?
Thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的想法可能是正确的,这就是 Chrome 报告中止请求的方式。 jQuery 调用 XMLHttpRequest 的 abort() 方法。关于如何从 W3C 实现此方法的建议可以在此处。
此过程的第 6 步是“将错误标志设置为 true”,因此尽管 Chrome 认为存在报告错误,但它是未定义的,因为错误消息尚未在请求对象内设置。
You're probably right in thinking it's the way Chrome reports an aborted request. jQuery calls the XMLHttpRequest's abort() method. The recommendation of how this method should be implemented from the W3C can be found here.
Step 6 of this process is "set the error flag to true", so although Chrome thinks there's an error to report it's undefined as the error message hasn't been set inside the request object.