axios

103 阅读1分钟

导入

import axios from 'axios'

创建

axios合并默认配置和实例配置,创建一个新的实例并返回 (请求配置 > 实例配置 > 默认配置)

默认配置(全局配置)

axios.defaults.timeout = 1000
axios.defaults.baseURL = 'http://localhost:8080'

实例创建

const instance1 = axios.create({
    baseURL: "http://localhost:8080",
    timeout: 1000,
})
const instance2 = axios.create({
    baseURL: "http://localhost:9090",
    timeout: 1000,
})

instance1、2为得到的新实例

请求配置

({
    url: '/findById',
    method: 'get',
    params: {
        id: id
    }
})

拦截

// 2.1.请求拦截
instance.interceptors.request.use(config => {
    return config
}, err => {
    console.log(err);
})
// 2.2.响应拦截
instance.interceptors.response.use(res => {
    return res.data
}, err => {
    console.log(err);
})

取消请求

利用CancelToken工厂函数创建cancel token

const CancelToken = axios.CancelToken;
const source = CancelToken.source();

// get 方法使用案例
axios.get('user/12345', {
  cancelToken: source.token
}).catch(function(thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message)
  } else {
    //  handle error
  }
})

// post 使用案例
axios.post('/user/12345', {
  name: 'name what'
}, {
  cancelToken: source.token
})

// 执行取消请求操作
source.cancel(‘请求已取消’)