vue封装axios(统一添加请求参数,如token useId等)

main.js中:

import axios from 'axios'
import VueAxios from 'vue-axios'
import qs from 'qs';
Vue.prototype.$qs = qs;

//请求的拦截器
/*axios.defaults.transformRequest=[function(data){
  return qs.stringify(data);
}];*/
axios.interceptors.request.use(function(config){
  const cl_u_id=localStorage.getItem('cl_u_id');
  const appId=localStorage.getItem('appId');

  if(config.headers['Content-Type'] == 'multipart/form-data'){
   config.data.set('cl_u_id',cl_u_id);
   config.data.set('appId',appId);
   return config;
  }
  //判断请求的类型:如果是post请求就把默认参数拼到data里面;如果是get请求就拼到params里面
  if(config.method==='post'){
    config.data=qs.stringify({
      cl_u_id:cl_u_id,
      appId:appId,
      ...config.data
    })
  }else if(config.method==='get'){
    config.params={
      cl_u_id:cl_u_id,
      appId:appId,
      ...config.params
    }
  }
  return config;
},function(error){
  return Promise.reject(error);
})

Vue.use(VueAxios, axios)

vue封装axios(统一添加请求参数,如token useId等)_第1张图片

你可能感兴趣的:(VUE)