axios拦截器1

为了减少代码的臃肿和方便维护,对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
  })
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容