axios在vue中的使用


created() {

    /* get方法的两种写法 */

    axios.get('/data.json',{  // http://localhost:8080/data.json?id=12

        params:{

            id:12

        }

    }).then((res)=>{

      console.log(res)

    })

    axios({

        method:'get',

        url:'/data.json', /* 相对于index.html */

        params:{

            id:12

        }

    }).then(res => {

        console.log(res)

    })

  }

2)post

post三个参数:url路径,请求数据,config

请求数据的两种方法:

form-data 表单提交(图片文件上传)

application/json


 let data = {

      id:12

    }

    // application/json 两种写法

    axios.post('/post',data).then(res =>{

      console.log(res)  

    })   

    axios({

      method: 'post',

      url:'/post',

      data: data

    }).then(res =>{

      console.log(res)   

    })   

    // form-data

    let formData = new FormData()// 首先创建一个formData格式的数据

    for(let key in data){

      formData.append(key, data[key])  // 添加

    }

    axios.post('post',formData).then(res =>{

      console.log(res)  

    })   

3)put和patch


// put请求

    axios.put('/put',data).then(res=>{

      console.log(res)

    })

    // patch

    axios.put('/patch',data).then(res=>{

      console.log(res)

    })

  

4)delete


axios.delete('/delete', {   // 只有两个参数url,config

      params:{   // 在url上显示

        id: 12

      }

    }).then(res=>{

      console.log(res)

    })

    axios.delete('/delete', {   // 只有两个参数url,config

      data:{   // 不在url上传输

        id: 12

      }

    }).then(res=>{

      console.log(res)

    })

    axios({

      methos:'delete',

      url:'/delete',

      params:{},

      data:{}

    }).then(res=>{

      console.log(res)

    })

2. axios并发请求


使用场景:需要请求多个接口,同时处理返回值

axios.all()  参数是数组,里面是一个个ajax请求

axios.spread()  作用是在axios.all()多个请求完成之后,分割请求返回值,把返回数据进行处理


   axios.all(

       [

           axios.get('/data.json'),

           axios.get('/city.json')

       ]

   ).then( // 回调函数不同

       axios.spread((dataRes,cityRes)=>{

           console.log(dataRes,cityRes)

       })

   )

三、axios方法深入

===============

1. 创建axios实例


类似于数组创建的let arr = new Array()

后端接口地址有多个,并且超时试长不一样,用实例请求会很方便


    let instance = axios.create({  // axios实例

        baseURL: 'http://localhost:8080',

        timeout: 1000    

    })

    let axios2 = axios.create({  // axios实例

        baseURL: 'http://localhost:9090',

        timeout: 5000    

    })

    instance.get('/data.json').then(res=>{

        console.log(res)

    })

    axios2.get('/data.json').then(res=>{

        console.log(res)

    })

2. 实例相关配置



let instance = axios.create({  // axios实例

        baseURL: 'http://localhost:8080',  

                // 请求的域名/基本地址。会默认把baseurl拼接在相对路径前面

        timeout: 1000,       

                // 设置请求超时试长,单位:ms。超时会阻塞后端内容,因此设计超时时长会控制资源释放

        url: 'data.json',    // 请求的路径。

        method: 'get',     // post get patch put delete

        headers:{

            token:''   //  token识别登录人员信息,需要传递给后端

        },              // 设置请求头

        params: {},     // 会将请求参数拼接在url上

        data: {},       // 把请求参数放在请求体

    })

优先级:全局配置 < 实例配置 < 请求配置


// 1.axios全局配置

    axios.defaults.timeout = 1000

    axios.defulat.baseURL = 'http://localhost:8080'

// 2.axios实例配置

    let axios2 = axios.create()

    axios2.defaults.timeout = 3000

// 3.axios请求配置

    axios2.get('/data.json',{

        timeout: 9000

    }).then(res=>{

        console.log(res)

    })

3. 具体使用方法


有两种请求接口:http://localhost:9090 和 http://localhost:9091


    let real = axios.create({

        baseURL: 'http://localhost:9090',

        timeout: 1000, 

    })

    let real1 = axios.create({

        baseURL: 'http://localhost:9091',

        timeout: 3000, 

    })

    // 实例1请求使用到了:baseURL timeout url method(get) params

    real.get('/contactList',{

        params:{}

    }).then(res=>{

        console.log(res)

    })

    // 实例2请求使用到了:baseURL timeout(修改5000) url method(get) params

    real1.get('/orderList',{

        timeout: 5000

    }).then(res=>{

        console.log(res)

    })

4. axios拦截器


拦截器:在请求或者相应被处理前拦截它们

两种:请求拦截器,相应拦截器,取消拦截器(了解)

拦截器两个参数:请求前的拦截函数,请求错误的拦截函数

请求错误:请求没有到达后端(404接口未找到 401请求超时)

响应错误:查询数据,数据库查无此人

区别:请求是否到达后端


axios.interceptors.request.use(config=>{

        // 在发送请求前做些什么

        return config

    }, err=>{

        // 在发送请求错误时做些什么

        return Promise.reject(err)

    })



    // 响应拦截器

    axios.interceptors.response.use(res=>{

        // 请求成功对相应数据处理

        return res

    },err=>{

        // 相应错误做些什么

        return Promise.reject(err)

    })



    // 取消拦截器(了解)

    let inter = axios.interceptors.request.use(config=>{

        config.headers={

            auth: true

        }

        return config 

    })

    axios.interceptors.request.eject(inter)

5. axios错误处理

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
roid工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-QZCfKHcM-1715311414803)]

[外链图片转存中…(img-ClMKRfZl-1715311414803)]

[外链图片转存中…(img-5RVJZJMg-1715311414803)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值