axios全局加header、request、response拦截
1、包装axios
const restWithHeader = axios.create({
baseURL: import.meta.env.APP_BASE_API_URL,
timeout: 60000,
headers: {
'header1': 'This is a header value'
}
})
// 请求
restWithHeader.interceptors.request.use(config => {
config.headers['token'] = sessionStorage.getItem('token')
return config
})
// 响应拦截
restWithHeader.interceptors.response.use(res => {
return res
}, error => {
// do something
return Promise.reject(error)
})
export default restWithHeader
注:error数据结构:
{
"message": "Request failed with status code 403",
"name": "AxiosError",
"config": {
...
},
"code": "ERR_BAD_REQUEST",
"status": 403
}
2、使用restWithHeader定义api
export const myApi= (param1, param2) => {
let params = {
param1: param1,
param2: param2
}
return rest.request({
url: 'your_api_url',
method: 'post',
data: params
})
}