vue 拦截器

这里用vue的axios

首先去下载axios=>npm install axios

安装完毕后重写axios

我这里创建文件夹了service文件夹,在下边创建了httpAxios文件

引用vue文件及axios文件

给axios一个地址,及头部信息和设置跨域请求

axios.defaults.baseURL='';
axios.defaults.withCredentials =true;

axios.defaults.headers.put['Conetent-type']='application/json';
axios.defaults.headers.post['Content-type']='application/json';

设置request拦截器

axios.interceptors.request.use(
  (config)=>{
  //判断token,存在token,将token放入headers中发送给服务端,后台进行判断 if(store.state.user.token){ config.headers.Authorization='${store.state.user.token}' } return config; }, (err)=>{ return Promise.reject(err); } );

设置response拦截器

axios.interceptors.response.use(
  (response)=>{
    return response;
  },
  (error)=>{
    if(error.response){
      switch (error.response.status) {
        case 401:
          router.replace({
            name:'login',
            query:{redirect:router.currentRoute.fullPath}
          });
          break;
      }
    }
    return Promise.reject(error.response.data);
  }
);
export const request=(config)=>{
  return axios(config);
}
export const request=(config)=>{
  return axios(config);
}

 判断返回状态是否没问题,存在问题进行处理。

页面调用的时候稍微修改一番。

引用重写文件


import request from '../service/httpAxios'
request({
              method:'post',
              url:'',
              data:{}
            }).then(function(respones){

            }).catch(function(error){
              console.log(error);
            });

第一次写拦截器小记。

posted @ 2020-11-27 11:25  绯颜旧雨  阅读(356)  评论(0编辑  收藏  举报