安装
1 | npm install --save axios |
示例
基础示例
1 | const axios = require("axios"); |
其参数值可以为
- data 请求数据
- method 请求访问
- url 请求地址
post 请求
1 | const axios = require("axios"); |
我们可以为请求设定一个具有指定配置项的实例
1 | const instance = axios.create({ |
然后这个 instance 就可以直接调用下述方法
axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
axios#getUri([config])
vue-cli2 中 axios 全局配置
1 | //axios/index.js |
最后在 main.js 里面引入
1 | import VueAxios from "vue-axios"; // 报错的话则npm安装依赖 |
Webpack-dev-server 的 proxy 用法
在开发环境中,可以将 axios 的请求通过 proxy 进行转发
最简单的用法示例
1
2
3
4
5
6
7mmodule.exports = {
devServer: {
proxy: {
"/api": "http://localhost:3000",
},
},
};请求到
/api/xxx
现在会被代理到请求http://localhost:3000/api/xxx
如果想要代理多个路径到同一个地址,可以使用一个或多个具有 context 属性的对象构成的数组
1
2
3
4
5
6
7
8
9
10mmodule.exports = {
devServer: {
proxy: [
{
context: ["/api", "/auth"],
target: "http://localhost:3000",
},
],
},
};如果你不想传递
/api
,可以重写路径1
2
3
4
5
6
7
8
9
10
11mmodule.exports = {
devServer: {
proxy: [
'/api':{
target: "http://localhost:3000",
pathRewrite:{'^/api',''},//原请求路径将被正则替换后加入到target地址后
secure:false,//默认情况下,不接受https,设置为false即可
},
],
},
};请求到
/api/xxx
现在会被代理到请求http://localhost:3000/xxx
使用 bypass 选项通过函数判断是否需要绕过代理,返回 false 或路径来跳过代理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16mmodule.exports = {
devServer: {
proxy: [
'/api':{
target: "http://localhost:3000",
bypass:function(req,res,proxyOptions){
if(req.header.accept.indexOfI('html')!== -1){
console.log('skipping proxy from browser request.')
return '/index.html';//return false
}
}
},
],
},
};
代理过程可能遇到的一些问题,对于有些 target 地址,可能需要登录,从而将页面重定向(302)到登录页面,那么我们就需要保证请求时带上对应的 token
提交 form 表单数据
1 | var bodyFormData = new FormData(); |