十八.vue中axios库

24 篇文章 0 订阅


axios ajax库 (vue+axios react+axios angular+axios)

axios 是一个 封装好的 第三方ajax请求的库
    特点:支持restfulapi 
        支持promise 解决回到地狱
        支持ajax请求拦截
vue-resource 停止维护了 ,官网不推荐使用
get请求:
    axios.get('url?params1=v&params2=值2').then().catch()
    axios.get(url,{
        params:{
            key1:v1,
            key2:v2
        }
    })

post请求:
    axios.post(url,{
        key1:v1,
        key2:v2
    }).then().catch()
注意:axios 中 默认 是以 json的形式发送数据 不是以 
application/x-www-form-urlencoded  "名字=值&名字2=值2"
json 
    {
        key:v
    }
    所以 你在和后端交互时,后端如果没有配置 接收post json格式,会导致后端接收不到数据
    如何解决?
    1,设置axios 
        request-headers content-type默认值 "application/json"
             content-type:"application/x-www-form-urlencoded"
    2,使用qs 库
        npm i qs -S
        import qs from 'qs'
        qs.stringify({
            a:10,
            b:20
        })
        结果: "a=10&b=20"

        qs.parse("a=10&b=20");
        结果:
            {
                a:10,
                b:20
            }

 直接使用
    axios({
    method: 'post',
    url: '/user/12345',
    data: {
        firstName: 'Fred',
        lastName: 'Flintstone'
    }
    }).then().catch()
    

创建一个实例来使用

  const http = axios.create({
            baseURL: 'http://localhost:3000',
            timeout: 8000,
            headers: {}
        });
    使用时,同axios
    http.get()
    http.post()

axios拦截器: 用于做全局的axios封装(结合实例来使用)

axios.interceptors.request.use(function (config) {
    // 可以拦截请求,在请求发送之前做啥都行
    config.data = qs.stringify(data)
    return config;
  }, function (error) {
    // 当请求错误之后会在这里拦截
    return Promise.reject(error);
  });

// Add a 相应拦截 interceptor
axios.interceptors.response.use(function (response) {
    // response 是服务端相应的数据 成功返回会在这里拦截
    return response;
  }, function (error) {
    // 服务器返回出错,会在这里进行拦截
  
    return Promise.reject(error);
  });


https://www.jianshu.com/p/7387a28a7e6f 实战中  vue 封装axios

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值