我使用的前端是反应。我使用的这个后端是springboot。现在我访问JWT。登录后,用户可以获得令牌。每个后端请求都将获取令牌。令牌过期或被篡改后,后端将使用401 HTTP代码进行响应。
我的目标是当HTTP请求以401响应时,跳转到登录页面。但是我尝试了error
或done()
,但他们不能工作。我总是得到:
{"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()