把axios封装过后 有的接口需要携带token 有的接口不需要携带token,但是我已经全局携带token了
时间: 2023-09-29 10:06:07 浏览: 125
你可以在封装的axios请求中添加一个选项来区分需要携带token的接口和不需要携带token的接口。以下是一个示例代码:
```javascript
import axios from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 5000, // 请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前对config进行处理
const token = getToken(); // 获取token,可以根据自己的实现进行修改
if (token) {
config.headers['Authorization'] = `Bearer ${token}`; // 设置token
}
return config;
},
(error) => {
// 请求错误处理
console.error('请求拦截器错误:', error);
return Promise.reject(error);
}
);
// 封装的get请求方法
export function get(url, params) {
return instance.get(url, { params });
}
// 封装的post请求方法
export function post(url, data) {
return instance.post(url, data);
}
```
在这个示例中,我们通过请求拦截器对所有的请求进行处理,在发送请求之前判断是否有token,如果有则在请求头中添加Authorization字段。这样你可以在调用API时,根据需要选择是否携带token。
请注意,上述示例代码仅供参考,具体的实现方式可能因你的项目结构和需求而有所不同。
阅读全文