axios拦截器统一参数加判断条件
2024-02-20 本文已影响0人
云桃桃
有些需求是需要在axios里面加一些统一的token或者sign来做用户验证处理,但是有些需要加这些统一参数,有些不需要,这时候就需要加以判断了。
- 如下,get请求用的是
params
方式入参,post用的data
方式入参,noSign
就是那些在参数体里面配置的一项,因为大多数是需要sign
的,所以默认都传入sign
,对于不需要的使用noSign
参数处理,仅此。欢迎提建议。- 不需要签名的传入
{noSign:true}
- 需要签名的从store状态管理之前设置的里面取一下。
- 不需要签名的传入
// 封装axios,在此不叙述
// 请求前做一些统一处理,当然可以在细化。
service.interceptors.request.use(
config => {
if (config.method === 'post') {
config.data = {
...config.data
}
if (config.data && config.data.noSign) {
delete config.data.noSign
} else {
config.data.sign = getSign()
}
} else if (config.method === 'get') {
config.params = {
...config.params
}
if (config.params && config.params.noSign) {
delete config.params.noSign
} else {
config.params.sign = getSign()
}
}
return config
}, function(error) {
return Promise.reject(error)
}
)