axios可以通过npm安装的服务(在vue项目中很好使用) 一、安装1、用npm安装npm install axios --save2、直接利用cdn引入二、例子:1、 发送一个GET请求//通过给定的ID来发送请求axios.get('/user?ID=123
一、安装 1、用npm安装npm install axios --save 2、直接利用cdn引入 二、例子: 1、 发送一个GET请求 //通过给定的ID来发送请求 axios.get('/user?ID=12345') .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); }); //以上请求也可以通过这种方式来发送 axios.get('/user',{ params:{ ID:12345 } }) .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); }); 2.发送一个POST请求 axios.post('/user',{ firstName:'Fred', lastName:'Flintstone' }) .then(function(res){ console.log(res); }) .catch(function(err){ console.log(err); }); 3.一次性并发多个请求 function getUserAccount(){ return axios.get('/user/12345'); } function getUserPermissions(){ return axios.get('/user/12345/permissions'); } axios.all([getUserAccount(),getUserPermissions()]) .then(axios.spread(function(acct,perms){ //当这两个请求都完成的时候会触发这个函数,两个参数分别代表返回的结果 })) 三、axios的api 1.axios可以通过配置(config)来发送请求 axios({ method:"POST", url:'/user/12345', data:{ firstName:"Fred", lastName:"Flintstone" } }); 参考地址:http://www.jianshu.com/p/df464b26ae58axios使用中的问题
axios使用post的默认请求头"application/json; charset=UTF-8" 如果修改项目的时候需要使用"application/x-www-form-urlencoded; charset=UTF-8"的时候 axios.post('/api/mobile/exchangegift', qs.stringify({ exchangeid:id, count:count }),{ headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" } }) .then((res) => { console.log(res); }) .catch(function(err){ console.log(err); }); 附加: qs.stringify() 和JSON.stringify()有什么区别 功能虽然都是序列化,但是序列化出来的结果完全不同 var a = {name:'hehe',age:10}; qs.stringify序列化结果如下 name=hehe&age=10; 而JSON.stringify序列化结果如下: "{"a":"hehe","age":10}";兼容性处理
项目中发现,在安卓4.3及以下的手机不支持axios的使用, 主要就是无法使用promise。加上以下polyfill就可以了。 项目中安装es6-promise cnpm install es6-promise --save-dev 在axios.min.js开头加上(需要在node_modules中找axios文件夹的dist中找) require('es6-promise').polyfill(); 注意:这样做需要注意每次npm i 的时候都需要重新添加这句代码 你也可以在使用页面的入口部分添加(这样就可以不免上述问题)