首先要明白的是axios是什么:axios是基于promise(諾言)用于瀏覽器和node.js是http客戶(hù)端。
axios的作用是什么呢:axios主要是用于向后臺(tái)發(fā)起請(qǐng)求的,還有在請(qǐng)求中做更多是可控功能。
特點(diǎn):支持瀏覽器和node.js
? ? ? ? ? ? 支持promise
? ? ? ? ? ? 能攔截請(qǐng)求和響應(yīng)
? ? ? ? ? ? 能轉(zhuǎn)換請(qǐng)求和響應(yīng)數(shù)據(jù)
? ? ? ? ? ? 能取消請(qǐng)求
? ? ? ? ? ? 自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù)
? ? ? ? ? ? ?瀏覽器支持防止CSRF(跨站請(qǐng)求偽造)
這里你一定會(huì)想promise是什么東西,以下是promise的個(gè)人理解:
promise是什么:是一個(gè)對(duì)象用來(lái)傳遞異步操作的信息,它代表了某個(gè)未來(lái)才會(huì)知道結(jié)果的事件(通常是一個(gè)異步操作),并且這個(gè)事件提供統(tǒng)一的api,可供進(jìn)一步的處理。
promise的作用:Promise的出現(xiàn)主要是解決地獄回調(diào)的問(wèn)題,比如你需要結(jié)果需要請(qǐng)求很多個(gè)接口,這些接口的參數(shù)需要另外那個(gè)的接口返回的數(shù)據(jù)作為依賴(lài),這樣就需要我們一層嵌套一層,但是有了Promise 我們就無(wú)需嵌套。
promise的本質(zhì)是什么:分離異步數(shù)據(jù)獲取和業(yè)務(wù)
基本使用方法:
axios執(zhí)行GET請(qǐng)求

執(zhí)行POST請(qǐng)求

執(zhí)行多個(gè)并發(fā)請(qǐng)求

get和post都是基于promise的所以寫(xiě)法上很相似,是用then和catch,使用這種方法來(lái)進(jìn)行發(fā)送請(qǐng)求。
還有一個(gè)axios重要的知識(shí)點(diǎn)就是攔截器
攔截器
在請(qǐng)求或響應(yīng)被?then?或?catch?處理前攔截它們(攔截器可以做什么:在請(qǐng)求或者響應(yīng)時(shí)攔截下來(lái)進(jìn)行處理)
攔截器分為請(qǐng)求攔截器和響應(yīng)攔截器
請(qǐng)求攔截器(interceptors.requst)是指可以攔截每次或指定HTTP請(qǐng)求,并可修改配置項(xiàng)。
響應(yīng)攔截器(interceptors.response)可以在每次HTTP請(qǐng)求后攔截住每次或指定HTTP請(qǐng)求,并可修改返回結(jié)果項(xiàng)。

攔截器的工作流程:

移除攔截器

自定義 axios 實(shí)例添加攔截器

取消
使用?cancel token?取消請(qǐng)求
可以使用?CancelToken.source?工廠方法創(chuàng)建 cancel token
參考資料:axios中文文檔