我的需求是这样的,我有个request.js里面,放着所有需要请求的接口,而每个接口都有几个共同的参数:
let fixedData = {
randstr: 'dafdsdasd', 随机字符串;
sign: 'md5', //参数签名
time: new Date().getTime(), //当前时间
}
这三个参数是固定的,调用时如下:
export function getUserList(params) {
return request({
url: '/user/list',
method: 'get',
params: {
...params,
...fixedData
}
})
}
export function getArticleList(params) {
return request({
url: '/article/list',
method: 'get',
params: {
...params,
...fixedData
}
})
}
//还有N个接口,就不一一列举
request里面是axios请求。
现在问题来了,fixedData里面的time每次都是打开页面时的时间,没有变过,除非刷新页面time才会变,有什么办法让每次请求的时候,time都是当前最新时间?
反正就是配置拦截器。从业务角度来说,如果你所有接口都要加时间,就配全局拦截器,如果只是某些request需要加时间,其他的不要,就单独给这些请求写一个axios服务,单独配拦截器,就是把下面代码的axios换成你的对应的service(instance)