$ .Deferred()无法获得401代码

时间:2017-04-27 06:46:24

标签: jquery reactjs

我使用的前端是反应。我使用的这个后端是springboot。现在我访问JWT。登录后,用户可以获得令牌。每个后端请求都将获取令牌。令牌过期或被篡改后,后端将使用401 HTTP代码进行响应。

我的目标是当HTTP请求以401响应时,跳转到登录页面。但是我尝试了errordone(),但他们不能工作。我总是得到:

{"readyState":0,"status":0,"statusText":"error"}

如何获得401状态?

const defer = $.Deferred()

$.ajax({
    type: method,
    url: url,
    data: body,
    beforeSend: function(xhr) {
      xhr.setRequestHeader("Authorization", getToken());
    },
    contentType: "application/json;charset=UTF-8",
    crossDomain: true,
    //error:function(XMLHttpRequest, textStatus, errorThrown) {
    //  console.log(textStatus,errorThrown)                               
    //  console.log(console.log(JSON.stringify(XMLHttpRequest))); 
    //  hashHistory.push("/login");
    //}
  }).done(defer.resolve).fail(function(res) {
    errHandler(JSON.stringify(res))
  });

return defer.promise()

0 个答案:

没有答案