axios实例

Posted harold-hua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios实例相关的知识,希望对你有一定的参考价值。

创建实例

<template>
  <div class="home">
    
  </div>
</template>

<script>
// @ is an alias to /src
import axios from ‘axios‘;

export default 
  // axios实例
  // 后端接口地址有多个,并且超时时长不一样

  name: ‘axios3-1‘,
  created() 
    let instance1 = axios.create(
      baseURL: ‘http://localhost:8080‘,
      timeout: 1000,
    )

    let instance2 = axios.create(
      baseURL: ‘http://localhost:8081‘,
      timeout: 5000,
    )

    instance1.get(‘/data.json‘).then(res=>
      console.log(res)
    )

  ,

</script>

 

 

 

 

实例相关配置

<template>
  <div class="home">
    
  </div>
</template>

<script>
// @ is an alias to /src
import axios from ‘axios‘;

export default 
  // axios实例相关配置
  name: ‘axios3-2‘,
  created() 
    axios.create(
      baseURL: ‘http://localhost:8080‘,  //请求的域名,基本地址
      timeout: 1000,  //请求超时时长(ms)
      url: ‘/data.json‘,  //请求路径
      method: ‘get, post, put, patch, delete‘,  //请求方法
      headers: 
        token: ‘‘,
      ,  //设置请求头
      params: 

      ,  //请求参数拼接在url上
      data: 

      ,  //请求参数放在请求体
    )

    // 相当于添加上面的配置信息
    // axios.get(‘/data.json‘,
    //   params:,
    // )


    // 1.axios全局配置
    axios.defaults.timeout = 1000;
    axios.defaults.baseURL = ‘http://localhost:8080‘;
    // 2.axios实例配置
    let instance = axios.create();
    instance.defaults.timeout = 3000;
    // 3.axios请求配置
    instance.get(‘/data.json‘,
      timeout: 5000,
    )


  ,

</script>

 

 

 

 

常用参数配置具体使用方法

<template>
  <div class="home">
    
  </div>
</template>

<script>
// @ is an alias to /src
import axios from ‘axios‘;

export default 
  // axios实例相关配置
  name: ‘axios3-2‘,
  created() 
    axios.create(
      baseURL: ‘http://localhost:8080‘,  //请求的域名,基本地址
      timeout: 1000,  //请求超时时长(ms)
      url: ‘/data.json‘,  //请求路径
      method: ‘get, post, put, patch, delete‘,  //请求方法
      headers: 
        token: ‘‘,
      ,  //设置请求头
      params: 

      ,  //请求参数拼接在url上
      data: 

      ,  //请求参数放在请求体
    )

    // 相当于添加上面的配置信息
    // axios.get(‘/data.json‘,
    //   params:,
    // )


    // 1.axios全局配置
    axios.defaults.timeout = 1000;
    axios.defaults.baseURL = ‘http://localhost:8080‘;
    // 2.axios实例配置
    let instance = axios.create();
    instance.defaults.timeout = 3000;
    // 3.axios请求配置
    instance.get(‘/data.json‘,
      timeout: 5000,
    )



    //实际开发
    //有两种请求接口
    //http://localhost:9090
    //http://localhost:9091
    let instance1 = axios.create(
      baseURL: ‘http://localhost:9090‘,
      timeout: 1000,
    )

    let instance2 = axios.create(
      baseURL: ‘http://localhost:9091‘,
      timeout: 3000,
    )

    //baseUrl, timeout, url, method, params
    instance1.get(‘/contactList‘, 
      params: ,
    ).then((res)=>
      console.log(res)
    )

    //baseUrl, timeout: 5000, method, url
    instance2.get(‘/orderList‘, 
      timeout: 5000,
    ).then((res)=>
      console.log(res)
    )


  ,

</script>

 

 

 

 

拦截器

<template>
  <div class="home">
    
  </div>
</template>

<script>
// @ is an alias to /src

// 拦截器:在请求或响应被处理前拦截它们

// 请求拦截器,响应拦截器
import axios from ‘axios‘;

export default 
  name: ‘axios3-3‘,
  created() 
    // 请求拦截器
    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 interceptors = axios.interceptors.response.use(config=>
      config.headers=
        auth: true,
      
      return config
    )
    axios.interceptors.response.eject(interceptors)


    //实际开发
    //登录状态(token: ‘‘),访问需要登录的接口
    let instance = axios.create()
    instance.interceptors.request.use(config=>
      config.headers.token = ‘‘;

      return config;
    )
    //访问不需要登录的接口
    let newInstance = axios.create()

    // 移动端开发
    let instance_phone = axios.create()
    instance_phone.interceptors.use(config=>
      $(‘#modal‘).show()
      return config
    )
    instance_phone.interceptors.response.use(res=>
      $(‘#modal‘).hide()
      return res
    )


  ,

</script>

 

以上是关于axios实例的主要内容,如果未能解决你的问题,请参考以下文章

vue实例讲解之axios的使用

登录应用后更新axios实例头失败

Axios 自定义实例无法与下一个 JS 一起正常工作

把axios挂载到vue实例上面

全局axios默认值 和 自定义实例默认值

为啥我的 Axios 实例没有在捕获的错误中返回响应?