axios基本配置
点击查看代码
<!-- axios基础用法 -->
<script>
/**
* axios:一款基于promise设计模式封装的ajax库(JQ中的ajax就是最普通的ajax库,没有基于promise管理)
*/
//=> axios.get([URL],[OPTIONS]);
// axios.get();
// axios.delete();
// axios.head();
//=>axios.post([URL],[DATA],[OPTIONS]):DATA通过请求主体传递给服务器的内容
// axios.post();
// axios.put();
/**
* OPTIONS
* baseURL:基础的URL路径
* transformRequest:处理请求参数(对POST系列有作用)
* transformResponse:把返回的结果进行处理
* headers:设置请求头
* params:GET系列请求传递给服务器的内容(会把parmas中的内容拼接为x-www-form-urlencoded这种格式,基于URL问号传参传递给服务器)
* paramsSerializer:传递参数的序列化
* timeout:超时时间
* withCredentials:跨域请求中是否允许携带凭证
* responseType:预设服务器返回结果,默认是JSON,支持BUFFER/TEXT/STREAM/DOCUMENT...
* validateStatus:AXIOS本身只有在HTTP状态码以2开头的时候才认为是成功,其余都认为是失败状态,当然我们可以自己来设置,基于validateStatus这个来修改
* ...
*/
//执行axios.xxx()都会返回一个promise实例,ajax请求成功会把实例的状态改为fulfilled,请求失败状态改为rejected;并且将获取的结果或者错误原因作为promise的value
// axios.get('http://127.0.0.1:5501/02-JavaScript/08%20%E8%AE%AD%E7%BB%83+%E7%9F%A5%E8%AF%86%E8%AF%A6%E8%A7%A3/21-%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E7%9A%84%E4%BA%A4%E4%BA%92%E5%A4%84%E7%90%86/json/data2.json?_=' + Math.random(), {
// headers: {
// //=>设置请求头信息
// AAA: encodeURIComponent('哈哈哈')
// },
// params: {
// lx: 1,
// from: 'WX'
// }
// }).then(result => {
// //=>result:从服务器获取的结果
// /**
// * CONFIG:我们自己配置的响应信息
// * DATA:存储的是响应主体内容
// * HEADERS:存储响应头的信息
// * REQUEST:ajax实例
// * status:响应状态码
// * status-text:状态码的描述
// */
// return result.data;
// }).catch(reason => {
// console.log(reason);
// throw new Error(reason);
// }).then(data => {
// //=>data:从服务器获取的响应主体内容
// console.log(data);
// });
axios.post('http://127.0.0.1:5501/02-JavaScript/08%20%E8%AE%AD%E7%BB%83+%E7%9F%A5%E8%AF%86%E8%AF%A6%E8%A7%A3/21-%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E7%9A%84%E4%BA%A4%E4%BA%92%E5%A4%84%E7%90%86/json/data.json', {
lx: 1,
from: 'WX'
}, {
headers: {
//=>设置请求头信息
AAA: encodeURIComponent('哈哈哈')
},
transformRequest: function(data) {
if (!data) return;
let str = ``;
for (let key in data) {
if (!data.hasOwnProperty(key)) return;
str += `&${key}=${data[key]}`
}
return str.substring(1);
}
}).then(result => {
return result.data;
}).catch(reason => {
console.log(reason);
throw new Error(reason);
}).then(data => {
//=>data:从服务器获取的响应主体内容
console.log(data);
});
</script>
<!-- axios全局配置项 -->
<script>
/* 在使用AXIOS之前,我们一般都需要配置默认的配置项 */
// 1.基础URL,后期再发送请求的时候,URL请求地址最前面的公共部分就不需要再写了
axios.defaults.baseURL = "http://127.0.0.1:5501/02-JavaScript/08%20%E8%AE%AD%E7%BB%83+%E7%9F%A5%E8%AF%86%E8%AF%A6%E8%A7%A3/21-%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E7%9A%84%E4%BA%A4%E4%BA%92%E5%A4%84%E7%90%86";
// 2.跨域请求中允许携带资源凭证(例如COOKIE信息)
axios.defaults.withCredentials = true;
// 3.设置请求头:POST系列中,我们传递给服务器数据的格式一般以x-www-form-urllencoded格式为主
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urllencoded';
// 4.设置请求拦截器(只对POST系列有用):把基于请求主体传递给服务器的内容进行拦截,把内容格式变为x-www-form-urllencoded这种格式,再传递给服务器
axios.defaults.transformRequest = function(data) {
if (!data) return;
let str = ``;
for (let key in data) {
if (!data.hasOwnProperty(key)) return;
str += `&${key}=${data[key]}`
}
return str.substring(1);
};
// 5.设置响应拦截器:[成功状态]把从服务器获取的结果中的响应主体信息获取到即可,[失败状态]手动把错误信息抛出异常
axios.interceptors.response.use(function(response) {
return response.data;
}, function(error) {
// return Promise.reject(error);
throw new Error(error);
});
// 6.配置什么状态才算成功(把PROMISE状态改为FULFILLED)
axios.defaults.validateStatus = function(status) {
return /^(2|3)\d{2}$/.test(status);
}
// axios.get('/json/data2.json').then(data => {
// console.log(data);
// }).catch(reason => {
// console.log(reason);
// });
//=>Promise.all
let promise1 = Promise.resolve(100);
let promise2 = Promise.resolve(200);
axios.all([promise1, promise2]).then(results => {
let [
val1,
val2
] = results;
console.log(val1, val2);
});
// axios.all([promise1, promise2]).then(axios.spread(function(val1, val2) {
// //=>axios.spread:把基于axios.all获取的结果一项项的单独获取到
// console.log(val1, val2);
// }));
</script>
axios基本配置的更多相关文章
- vue-cli 3.0之跨域请求代理配置及axios路径配置
vue-cli 3.0之跨域请求代理配置及axios路径配置 问题:在前后端分离的跨域请求中,报跨域问题 配置: vue.config.js: module.exports = { runtimeCo ...
- axios [æk'si:əʊs] 及 axios 请求配置
特征 比Jquery轻量,但处理请求不多的时候,可以使用 基于Promise语法标准 支持nodejs 自动转换JSON数据 用法 get // Make a request for a user w ...
- axios全局配置及拦截器
axios使用说明文档 axios 全局配置: //axios-init.js import axios from 'axios': let loadingInstance; //创建Loading ...
- vuejs axios安装配置与使用
1.安装服务 npm install --save axios vue-axios 2.在main.js import axios from 'axios' import VueAxios from ...
- 在vue项目中的axios使用配置记录
默认vue项目中已经安装axios,基于element-ui开发,主要记录配置的相关. axiosConfig.js import Vue from 'vue' import axios from ' ...
- 3.vue引入axios全局配置
前言: Vue官方推荐使用axios来进行异步访问. axios文档参考:axios中文文档 开始搭建: 1.引入axios (1)打开终端 win+R (2)切换到项目路径: g: cd Webap ...
- axios使用配置
axios 配置 下载cnpm install axios vue-axios --save-dev main.js文件中配置 import axios from 'axios' import Vue ...
- Axios 请求配置参数详解
axios API 可以通过向 axios 传递相关配置来创建请求 axios(config) // 发送 POST 请求 axios({ method: 'post', url: ' ...
- (day69)axios、配置ElementUI、配置jQuery和Bootstrap、Django中的CORS问题
目录 一.Vue的ajax插件:axios 二.Django中的CORS跨域问题 (一)同源策略 (二)解决方式(cors模块) 三.Vue配置ElementUI 四.Vue配置jQuery和Boot ...
- vue axios简单配置
参考:https://www.cnblogs.com/sophie_wang/p/7844119.html 1. 安装 npm install axios 2. main.js import axio ...
随机推荐
- Postman 测试 Web Service 和 WCF
一.postman 测试web service(1)设置url http://www.oorsprong.org/websamples.countryinfo/countryinfoservice.w ...
- [python]tkinter简易的图片浏览器
import os from tkinter import filedialog, Tk from PIL import Image, ImageTk, ImageSequence import tk ...
- vue中require动态加载图片
<template> <img src="D:/images/01.png" alt="静态加载"> <img :src=&quo ...
- Quartz 2D CGPattern学习笔记
CGPattern是在图形上下文中重复绘制的一系列绘制操作.你可以像使用颜色一样使用图案.当使用CGPattern进行绘制时,Quartz将页面划分为一组图案单元格,每个单元格的大小为CGPatter ...
- 语法——包、权限修饰符、final
一.包 1.什么是包? 包是用来分门别类的管理各种不同的类的,类似于文件夹,建包有利于程序的管理和维护. 建包的语法格式: package 公司域名倒写.技术名称.包名建议全部英文小写,且具备意义. ...
- php json_encode 斜杠 反斜杠 转义处理
$data = str_replace("\\\\n", "\\n", \jsonEncode($data)); // \\n转为\n $data = str_ ...
- hMailServer搭建
请参考网址https://blog.csdn.net/TL18382950497/article/details/124356534
- 向mysql插入数据是出现Incorrect string value错误
在向Mysql中添加中文数据时,报错(incorrect string value ) 字符转换不正确 插入语句:mysql> insert into user1 (name,password ...
- Q查询和F查询
F查询与Q查询 F查询 Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值. # 查询评论数大于收藏数的书籍 from d ...
- 微信小程序监听view到顶部的高度
view style='width:100%;height:80rpx;' id='navigation'></view> wx.createSelectorQuery().sele ...