https://github.com/mzabriskie/axios
前端要訪問服務(wù)端數(shù)據(jù),服務(wù)端訪問另一個(gè)服務(wù)端數(shù)據(jù)蹲嚣,這兩種訪問都需要用到http客戶端。
axios是一個(gè)在全后端通吃的HTTP客戶端苔悦。我認(rèn)為你在js學(xué)習(xí)過程中净嘀,只需要把a(bǔ)xios搞定怎么用报咳,就可以解決所有http相關(guān)的請(qǐng)求。
前后端通吃是axios的優(yōu)勢(shì)挖藏,但更牛的是暑刃,它能把處理寫成鏈?zhǔn)浇Y(jié)構(gòu)。
axios.get().then().then().catch();
以上的處理流程解釋如下:
axios.get()獲得的結(jié)果給到第一個(gè)then()膜眠,第一個(gè)then處理完后給到第二個(gè)then()岩臣。如果中間過程發(fā)生錯(cuò)誤,會(huì)直接跳到cath()里宵膨。
事實(shí)上axios.get()是一個(gè)異步函數(shù)架谎,axios.get()的異步回來后才會(huì)調(diào)用后面的then()函數(shù)。以這樣的推理辟躏,整個(gè)axios.get().then().then().catch()就是一個(gè)異步函數(shù)鏈條谷扣。
Get請(qǐng)求
axios.get('/api')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
// 案例
axios.get('https://js.xinshengdaxue.com/api/v1/learnJS/course/1/words')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Post請(qǐng)求
axios.post('/api', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
//案例
axios.post('https://js.xinshengdaxue.com/api/v1/learnJS/sayToMe', {
name: '***', // 你的名字(你要交第九次作業(yè)?一定要和前面交作業(yè)用的名字一樣喲捎琐,否則我沒辦法統(tǒng)計(jì)你的作業(yè)次數(shù))
account: '******', // 你注冊(cè)新生大學(xué)的賬號(hào)
content: '老師真酷~~' // 你想對(duì)老師說的真心話
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});