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实例

上一篇:javascript数据结构和算法 第一章(编程体验)三


下一篇:简单RPC实现之Netty实现