1、簡介javascript
看看官網的簡介:html
「Promise based HTTP client for the browser and node.js」 java
譯:基於 Promise 的 HTTP 請求客戶端,可同時在瀏覽器和 node.js 中使用。node
2、特色:ios
一、在瀏覽器中發送 XMLHttpRequests 請求;
二、在 node.js 中發送 http請求;
三、支持 Promise API;
四、攔截請求和響應;
五、轉換請求和響應數據;
六、自動轉換 JSON 數據;
七、客戶端支持保護安全免受 XSRF 攻擊;es6
3、安裝(官網)npm
4、應用axios
一、發送一個get請求promise
axios.get('/welfare', {
params: {
giftPackId: 1
}
})
.then(function(res) {
console.log(res);
})
.catch(function (res) {
console.log(res);
});瀏覽器
二、發送一個post請求
1
2
3
4
5
6
7
8
9
|
axios.post(
'/welfare'
, {
giftPackId: 1
})
.then(
function
(res) {
console.log(res);
})
.
catch
(
function
(res) {
console.log(res);
});
|
三、發送多個併發請求
1
2
3
4
5
6
7
8
9
10
11
12
|
function
getUserAccount() {
return
axios.get(
'/welfare'
);
}
function
getUserPermissions() {
return
axios.get(
'/getWelfare'
);
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(
function
(acct, perms) {
// ok
}));
|
四、除此以外axios還提供還有以下幾種請求方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
axios.request(config)
axios.get(url[, config])
axios.
delete
(url[, config])
axios.head(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
|
五、兼容性處理
項目中發現,在安卓4.3及如下的手機不支持axios的使用,主要就是沒法使用promise。加上如下polyfill就能夠了。
項目中安裝es6-promise
1
|
cnpm install es6-promise --save-dev
|
在axios.min.js開頭加上
1
|
require(
'es6-promise'
).polyfill();
|
ok!