我试图对所有ajax请求进行操作,并专门处理409s,但是即使FireFox调试器清楚地向我显示409,我的状态代码也始终为0。
JS代码
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
if(this.status === 409)
console.log("Conflict 409")
open.apply(this, arguments);
};
})(XMLHttpRequest.prototype.open);
我可以使用服务器代码轻松生成409s。我看到FireFox和Chrome显示409s。但是
this.status
始终为0,即使在400s上也是如此。我究竟做错了什么? 最佳答案
您在请求完成之前正在检查状态。
您可以使用xhook库来拦截XHR响应。
例:
xhook.after((request, response) => {
if (response.status === 409) {
console.log("Conflict 409")
}
})