java修改ajax响应头401_当jquery ajax遇上401请求的解决方法
时间: 2023-08-04 14:36:35 浏览: 193
Ajax-json.rar_JSON_ajax json_java Jquery ajax_javascript_json aj
当你使用jQuery的ajax方法发起请求时,如果后端返回了401状态码(表示未授权),那么jQuery会自动跳转到登录页面,这个行为是默认的。
如果你想自定义处理401状态码的情况,可以使用jQuery的全局ajax事件来实现。具体做法如下:
1. 在全局的ajax事件中监听401状态码:
```javascript
$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
// 处理401状态码的情况
}
});
```
2. 在处理401状态码的情况中,取消默认的跳转行为,并进行自定义处理:
```javascript
$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
event.preventDefault(); // 取消默认的跳转行为
// 自定义处理401状态码的情况
}
});
```
3. 在自定义处理401状态码的情况中,可以使用ajax方法重新发起请求,并在请求头中添加Authorization信息:
```javascript
$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
event.preventDefault(); // 取消默认的跳转行为
// 自定义处理401状态码的情况
$.ajax({
type: 'GET',
url: settings.url, // 重新发起请求
headers: {
'Authorization': 'Bearer ' + token // 添加Authorization信息
},
success: function(data) {
// 处理成功的情况
},
error: function(jqxhr, status, error) {
// 处理失败的情况
}
});
}
});
```
这样,当后端返回401状态码时,就会自动重新发起请求,并在请求头中添加Authorization信息,实现了自定义处理401状态码的情况。
阅读全文