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
	})
}
posted @ 2024-06-19 08:51  漠孤烟  阅读(243)  评论(0)    收藏  举报