zoukankan      html  css  js  c++  java
  • 从零开始学VUE之网络模块(Axios)

    Axios

    功能特点

    • 在浏览器中发送XHR请求
    • 在Node.js中发送http请求
    • 支持 Promise API
    • 拦截请求和响应

    支持多种请求方式

    • axios(config)
    • axios.request(config)
    • axios.get(url[,config])
    • axios.delete(url[,config])
    • axios.head(url[,config])
    • axios.post(url,data[,config])
    • axios.put(url,data[,config])
    • axios.patch(url,data[,config])

    安装

    npm install axios --save

    测试地址[老师的]

    http://123.207.32.32:8000/home/multidata

    简单使用

    // 导入 axios
    import axios from "axios";
    
    // 使用
    axios({
      url:'http://123.207.32.32:8000/home/multidata'
    }).then(res => {
      console.log(res);
    })

    传递参数

    (拼接URL后面)

    axios({
      url:'http://123.207.32.32:8000/home/data',
      params:{
        type:'pop',
        page:1
      }
    }).then(res => {
      console.log(res);
    })

    发送并发请求

    /**
     * 发送多请求
     */
    axios.all([
      axios({
        url:'http://123.207.32.32:8000/home/multidata'
      }),
      axios({
        url:'http://123.207.32.32:8000/home/multidata'
      })
    ]).then(res => {
      // 返回结果res是一个数组 [0] 就是第一个请求返回的结果 [1]...
      console.log(res);
    })
    axios.all([
      axios({
        url:'http://123.207.32.32:8000/home/multidata'
      }),
      axios({
        url:'http://123.207.32.32:8000/home/multidata'
      })
      // 可以通过 axios.spread展开返回结果
    ]).then(axios.spread((res1,res2) => {
      // 返回结果res是一个数组 [0] 就是第一个请求返回的结果 [1]...
      console.log(res1);
      console.log(res2);
    }))

    抽取默认配置

    /**
     * 默认配置
     */
    // 默认前缀URL
    axios.defaults.baseURL = 'http://123.207.32.32:8000'
    // 超时时间 单位:毫秒
    axios.defaults.timeout = 5000
    
    /**
     * 简单使用
     */
    axios({
      url:'/home/multidata'
    }).then(res => {
      console.log(res);
    })

    常见的配置

    • 请求地址
    • url:'/user'
    • 请求类型
    • method:'get'
    • 请求路径
    • baseURL:'https://www.baidu.com'
    • 请求前的数据处理
    • transformRequest:[function(data){}]
    • 请求后的数据处理
    • transformResponse:[function(data){}]
    • 自定义的请求头
    • headers:{'x-Requested-With':'XMLHttpRequest'},
    • URL查询对象
    • params:{id:12}
    • 查询对象序列化函数
    • paramsSerializer:function(params){}
    • request body
    • data:{key:'aa'}
    • 超时设置s
    • timeout : 1000
    • 跨域是否携带Token
    • withCredentials:false
    • 自定义请求处理
    • adapter:function(resolve,reject,config){}
    • 身份验证信息
    • auth:{uname:'彼岸舞',pwd:'111'}
    • 响应的数据格式
    • json | blob | document | arraybuffer | text | stream
    • responseType : 'json'

    创建对应的Axios的实例

    let config = {
      baseURL:'http://123.207.32.32:8000',
      timeout:5000
    };
    let axiosInstance = axios.create(config);
    axiosInstance({
      url:'/home/multidata'
    }).then(res => {
      console.log(res);
    })

    拦截器

    let config = {
      baseURL:'http://123.207.32.32:8000',
      timeout:5000
    };
    let axiosInstance = axios.create(config);
    
    // 请求拦截器
    axiosInstance.interceptors.request.use(
      // 拦截请求时的 config
      config => {
        console.log(config);
        return config;
      },
      // 拦截请求失败的error 一般请求不会失败的
      error => {
    
      }
    )
    // 响应拦截器
    axiosInstance.interceptors.response.use(
      // 请求返回的数据
      res => {
        console.log(res);
        // 做数据过滤 只返回后端返回的data
        return res.data;
      },
      // 请求失败的error
      error => {
        console.log(error);
      }
    )

    作者:彼岸舞

    时间:2021628

    内容关于:VUE

    本文属于作者原创,未经允许,禁止转发

  • 相关阅读:
    [转]DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
    【机器学习】深入理解人工神经网络结构
    【机器学习】初识人工神经网络
    【机器学习】通过正则化解决过拟合问题
    【机器学习】逻辑回归
    【机器学习】用Octave实现一元线性回归的梯度下降算法
    【机器学习】对梯度下降算法的进一步理解
    【机器学习】从分类问题区别机器学习类型 与 初步介绍无监督学习算法 PAC
    【机器学习】感知机学习算法(PLA)
    【机器学习】1 监督学习应用与梯度下降
  • 原文地址:https://www.cnblogs.com/flower-dance/p/14944706.html
Copyright © 2011-2022 走看看