可以设置一个响应拦截器,在响应拦截器中检查是否存在401响应代码,如果是,则在请求头中添加一个字段,告诉服务器请求需要进行身份验证。示例如下:
axios.interceptors.response.use(function (response) {
// 对响应数据做些什么
return response;
}, function (error) {
// 对响应错误做些什么
if (error.response.status === 401) {
// 添加Authorization请求头
error.config.headers['Authorization'] = 'Bearer ' + getToken();
// 重新发起请求
return axios.request(error.config);
}
return Promise.reject(error);
});
以上示例代码中,我们首先检查响应中的状态码是否为401,如果是,则将之前请求时的配置(包括headers)传递下来,并添加Authorization请求头,然后再次发起请求。这样就可以避免Axios拦截器在重试时更改POST请求的内容类型的问题。