axios封装国际化
时间: 2023-11-14 22:09:45 浏览: 214
好的,针对你的问题,我可以给出以下的封装方案:
```javascript
import axios from 'axios';
import i18n from '@/i18n';
const instance = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 5000
});
instance.interceptors.request.use(
config => {
config.headers['Accept-Language'] = i18n.locale;
return config;
},
error => {
console.log(error);
return Promise.reject(error);
}
);
instance.interceptors.response.use(
response => {
const res = response.data;
if (res.code !== 200) {
console.log(res.message);
return Promise.reject(new Error(res.message || 'Error'));
} else {
return res;
}
},
error => {
console.log('err' + error);
return Promise.reject(error);
}
);
export default instance;
```
这里使用了axios的拦截器,在请求头中添加了Accept-Language字段,用于国际化。在响应拦截器中,对返回的数据进行了处理,如果返回的code不为200,则会打印错误信息并reject掉Promise。
阅读全文