XMLHttpRequest状态代码始终为0

时间:2016-08-23 18:54:24

标签: javascript ajax

我正在尝试对所有ajax请求进行操作并专门处理409s,但我的状态代码总是 0,即使FireFox调试器会清楚地显示给我409.

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。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您在请求完成之前检查状态。

您可以使用xhook库拦截XHR回复。

示例:

xhook.after((request, response) => {
  if (response.status === 409) {
    console.log("Conflict 409")
  }
})