axios的二次封装,简单实用易于扩展

axios的二次封装,代码可以直接复制用,错误的直接引入弹出框,弹出提示,或者根据自己业务增加错误码返回即可

http.js
import axios from 'axios'
const  server = axios.create({
    timeout:6000,
});
server.interceptors.request.use(config=>{
    //判断toke
    //  config.headers['AuthToken'] = 'xxxx'
    return config
})
server.interceptors.response.use(response=>{
    //正确的判断
    const  res = response.data;
    if(response.status === 200 ){
        return res;
    }else{
        //弹出错误
        console.log(11111,"params")
    }
},err=>{
    console.log(err,"params11111")
    //请求失败的处理
    //弹出框提示
    return Promise.reject(err)
})

export default server;

封装get post请求

request.js
import instance from './http'
/**
*state不同状态不同域名,url请求地址,params参数 method:请求方式,headers的json还是表单这些
***/
function request(state=1,url,params,method,headers='application/json') {
    return new Promise((resolve,reject)=>{
        let  data = {};
        let baseURL = state===1?'http://xxxxx':'http://axxxx'
        switch (method){
            case 'get': data={params};
            break;
            case 'post': data ={data:params};
            break;
            default: break;
        }
        instance({
            baseURL,
            url,
            method,
            ...data,
            headers:{ 'Content-Type':headers },
        }).then((res)=>{
                resolve(res)
        }).catch(err=>{
            //提示错误r
            reject(err)
        })
    })
}

function get(state,url,params,headers) {
    return request(state,url,params,'get',headers);
}
function post(state,url,params,headers) {
    return request(state,url,params,'post',headers);
}
export default {
    get,post
}

代码中使用

import request from '../unit/request'
import qs from 'qs'

query(){
      let that =this;
      request.post(2,'/api/xxx/xxxx',qs.stringify({
          pageNo: 1,
          pageSize: 10,
      }),'application/x-www-form-urlencoded').then(res1=>{
        console.log(res1)     
      });
  },

以上是全部代码,可以自己扩展。跟人建议所有请求api对应响应的module,不要在页面里面像我这样写 我的只是demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值