美文网首页
axios拦截器1

axios拦截器1

作者: 前端划水工 | 来源:发表于2018-07-26 18:20 被阅读0次

    为了减少代码的臃肿和方便维护,对axios请求统一做了一些处理,代码如下

    import axios from 'axios'
    import qs from 'qs'
    axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
    //POST传参序列化
    axios.interceptors.request.use((config) => {
      if(config.method  === 'post'){
        // config.data = qs.stringify(config.data);
      }
      return config;
    },(error) =>{
      // console.warn("错误的传参");
      return Promise.reject(error);
    });
    //code状态码200判断
    axios.interceptors.response.use((res) =>{
      if(!res.data.hasOwnProperty('status')) {
        res.data.status = res.data.code;
        //return Promise.reject(res.data);
      }
      return Promise.resolve(res.data)
    }, (error) => {
      // console.warn("网络异常");
      return Promise.reject(error);
    });
    
    function fetch(options) {
      options = options || {}
      let pos = options.url.search(/^http/i)
      if (pos == -1)
        options.url = serviceProtocol() + options.url;
      options.headers = options.headers || {};
      return axios(options)
    }
    export default fetch;
    

    大致思路就是这样
    fetch的使用

    export function publishChatMsg(data) {
      return fetch({
        method: 'post',
        url: ``,
        data: data
      })
    }
    

    相关文章

      网友评论

          本文标题:axios拦截器1

          本文链接:https://www.haomeiwen.com/subject/alximftx.html