这个问题通常出现在移动设备上使用Axios进行HTTP网络请求的时候,因为Axios默认情况下不会在请求头中设置Authorization头部信息。为了解决这个问题,我们需要通过Axios的拦截器来设置Authorization头部信息。
下面是一个示例代码,它演示了如何在移动设备上使用Axios拦截器来设置Authorization头部信息:
import Axios from 'axios';
// 设置请求的默认配置
Axios.defaults.baseURL = 'https://api.example.com/';
Axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('access_token');
Axios.defaults.headers.post['Content-Type'] = 'application/json';
// 添加请求拦截器
Axios.interceptors.request.use(
function (config) {
// 在请求发送之前做些什么
let token = localStorage.getItem('access_token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 调用API
Axios.get('/users')
.then(function (response) {
// 处理响应数据
console.log(response);
})
.catch(function (error) {
// 处理错误
console.log(error);
});
在这个示例代码中,我们首先设置了请求的默认配置,其中包括了Authorization头部信息。然后我们添加了一个请求拦截器,在拦截器中设置了Authorization头部信息。这样,在发送请求的时候,Axios会自动把Authorization头部信息加入到请求中,解决了这个问题。