【Vue】Re22 Axios

Axios【AJAX I\O System】

创建案例项目并且安装Axios

npm install axios --save

接口测试网址:

http://httpbin.org/

案例提供的数据地址:

http://123.207.32.32:8000/home/multidata

在Main.js中导入Axios

import axios from 'axios';

一、请求发送

基本语法:

1、请求地址

2、请求方式

3、请求参数

4、链式then调用响应

axios({
  url : 'http://123.207.32.32:8000/home/multidata', 
  method : 'post', /* get */
  params : {
    pageIndex : 1,
    type : 'pop',
    userId : '... ...'
  },
}).then(function (result) {
  console.log(result);
});

其他请求方式:

const config = {
  url : 'http://123.207.32.32:8000/home/multidata',
  method : 'post', /* get */
  params : {
    pageIndex : 1,
    type : 'pop',
    userId : '... ...'
  },
}

axios(config);
axios.request(config);

axios.get(config.url,config);
axios.delete(config.url, config);
axios.head(config.url, config);

axios.post(config.url, config.params, config);
axios.put(config.url, config.params, config);
axios.patch(config.url, config.params, config);

同时发送请求

axios.all([
  axios({
    url : 'http://123.207.32.32:8000/home/multidata'
  }),
  axios({
    url : 'http://123.207.32.32:8000/home/data',
    params : {
      type : 'sell',
      page : 5
    }
  })
]).then(resultList => {
  console.log(resultList);
});

响应结果分开传递

axios.all([
  axios({
    url : 'http://123.207.32.32:8000/home/multidata'
  }),
  axios({
    url : 'http://123.207.32.32:8000/home/data',
    params : {
      type : 'sell',
      page : 5
    }
  })
]).then(axios.spread((r1, r2) => {
  console.log(r1);
  console.log(r2);
}));

分开传递的写法就相当于解构函数的写法,直接声明了属性变量直接调用

二、配置详细

全局配置:

也可以在局部请求时更改配置

axios.defaults.baseURL = 'http://123.207.32.32:8000'; // 根URL
axios.defaults.timeout = 5000; /*  毫秒   */ //超时时间上限
axios.defaults.transformRequest = function (data) {  // 请求前数据处理

};
axios.defaults.transformResponse = function (data) {  // 请求后数据处理

};
axios.defaults.headers = { // 请求头
  'x-Requested-With' : 'XMLHttpRequest'
};
axios.defaults.params = { // 请求参数
  id : 12
};
axios.defaults.paramsSerializer = function (params) { // 查询对象序列化
  // todo ... ...
}
axios.defaults.data = { /* 响应请求体 */
  
}
axios.defaults.withCredentials = false; // 跨域是否携带Token
axios.defaults.adapter = function (resolve, reject, config) { // 自定义请求处理
  // todo ... ...
}
axios.defaults.auth = { // 身份信息
  username : '',
  password : ''
}
axios.defaults.responseType = 'json'; // 响应格式

 

posted @ 2020-11-03 10:23  emdzz  阅读(93)  评论(0编辑  收藏  举报