//请求发送拦截 axios.interceptors.request.use((request) => { //获取请求的数据,这里是loginName和password let REQUEST_DATA = request.data //获取请求的地址,这里是/api/request let REQUEST_URL = request.url //设置签名并进行qs转换,且赋值给request的data,签名函数另外封装 request.data = qs.stringify(requestDataFn(REQUEST_DATA, REQUEST_URL)) //发送请求给后台 return request; }, function (error) { // Do something with request error return Promise.reject(error); }); //已封装好的签名函数 function requestDataFn(data, method) { let postData = {} //时间戳,时间戳函数不作展示,也是已封装好的 postData.timestamp = getNowFormatDate(); //请求用户的session以及secretKey信息,为空是未登录,登录后我把它存在localStorage中,这个存在哪里都可以,这里只作为例子。 postData.session = localStorage.getItem('session') || ''; postData.secretKey = localStorage.getItem('secretKey') || ''; //请求的地址,这里是/api/request postData.method = method; //请求的数据这里是loginName和password,进行base64加密 let base64Data = Base64.encode(JSON.stringify(data)); //设置签名并进行md5加密 let signature = md5.hex(postData.secretKey + base64Data + postData.method + postData.session + postData.timestamp + postData.secretKey); //把数据再次进行加密 postData.data = encodeURI(base64Data); postData.signature = signature; return postData }
这样我们就完成了对数据加密以及签名,这样再发送给后台。
注意:这里只作为例子展示,如果需要用到签名,如何签名,是前台和后台沟通的结果!
axios请求拦截的用处远远不止这样,具体如何使用,还需要在实际工作,实际项目中随机应变啦。
总结
以上所述是小编给大家介绍的在Vue中使用axios请求拦截的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: