Axios是一个基于promise的HTTP库
浏览器支持情况:Chrome、Firefox、Safari、Opera、Edge、IE8+
该库不支持jsonp 依赖于Vue
文档:axios中文文档

API

  • axios(config)
  • axios(url, [config])

    config 配置对象

    最常用的配置: ```javascript axios({ method: ‘get’, // post、get、put…. baseURL: ‘’, // 请求的域名,基本地址 url: ‘’, // 请求的路径 params: {}, // 会将请求参数拼接在url上 data: {}, // 会将请求参数放在请求体中 headers: {}, // 设置请求头,例如设置token等 timeout: 1000, // 设置请求超时时长,单位:ms })
  1. <a name="651feeb6"></a>
  2. ## 方法别名
  3. 为方便起见,为所有支持的请求方法提供了别名。
  4. - axios.request(config)
  5. - axios.get(url, [config])
  6. - axios.post(url, [data], [config]])
  7. - axios.delete(url, [config])
  8. - axios.head(url, [config])
  9. - axios.put(url, [data], [config])
  10. - axios.patch(url, [data], [config]])
  11. - axios.options(url, [config])
  12. ```javascript
  13. axios.get('https://developer.duyiedu.com/vue/getUserInfo').then(res => {
  14. console.log(res)
  15. })

配置默认值

可以指定将被用在各个请求的配置默认值

全局配置

  1. axios.defaults.baseURL = 'https://developer.duyiedu.com/vue';
  2. axios.defaults.timeout = 1000;

在实际项目中,很少用全局配置。

请求配置

  1. const instance = axios.create();
  2. instance.get('/getUserInfo', {
  3. timeout: 5000
  4. })

并发

同时进行多个请求,并统一处理返回值

  • axios.all(iterable) // 发送请求
  • axios.spread(callback) // 接受请求的回调
    1. axios.all([
    2. axios.get('/a'), // 第一个请求
    3. axios.get('/b') // 第二个请求
    4. ]).then(axios.spread((aRes, bRes) => { // aRes 第一个请求的回调 bRes 第二个请求的回调
    5. console.log(aRes, bRes);
    6. }))