axios
###
简单来说,axios是vue-resource的替代品,基于Promise的HTTP请求库,适用于浏览器端和node.js。
用法
1 | // Make a request for a user with a given ID |
POST 注意点
axios在post请求时,默认会将参数传递为JSON,所以如果要用 application/x-www-form-urlencoded 传送数据,需要额外处理
利用
URLSearchParams1
2
3
4var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);利用
qs
1 | //全局设置参数格式 |
拦截器
拦截器可以拦截 respone 和 request, 即拦截请求内容和响应结果。
比如:对于respone,约定了返回data中如果type:'login', 表示处于未登录状态,需要跳转登录页,则可以进行一个interceptores设置,避免每一个请求都重复设置。1
2
3
4
5
6
7
8
9
10axios.interceptors.response.use(function (response) {
// Do something before request is sent
if ( response.data.type === 'login' ){
// 跳转登录页
}
return response;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
关于多实例
axios支持多实例,以满足项目中不同的请求设置。 根据需要,可以设置不同的请求实例。1
2
3
4
5var instance1 = axios.create();
instance1.defaults.baseURL = 'http://localhost:8888' ;
var instance2 = axios.create();
instance2.defaults.baseURL = 'https://localhost:8888' ;