【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'; // 响应格式