axios是乙個基於promise的http庫(類似於jquery的ajax,用於http請求)
可以用於瀏覽器和node.js (可用於客戶端或node編寫的服務端)
支援promise api
攔截請求和響應(請求前和響應前做一些操作,比如在請求前的請求頭中加一些授權資訊等)
轉換請求資料和相應資料 (比如請求時一些敏感資訊需要加密,回來進行解密)
取消請求
自動轉換json資料 (一般進行http請求時伺服器傳輸的是字串,進行自動轉換,不用手動操作)
客戶端支援防禦xsrf攻擊
常見瀏覽器支援,ie支援8以上
a. 安裝axios: yarn add axios 或者 npm install axios檢視package.json中的dependencies是否安裝成功 (在vue框架操作)
b. 在home.vue中引入:import axios from 『axios』
c. 在生命週期中執行乙個請求
created()})
.then
((res)
=>
)<
!-- 另一種寫法 --
>
axios(}
).then
(res=>
)
<
!-- post --
>
<
!-- post 第一種寫法 --
>
let data =
axios.
post
('/位址'
,data)
.then
(res=>
)<
!-- post 另一種寫法 --
>
axios()
.then
(res=>
)
<
!-- post --
>
//form-data 表單提交(上傳,檔案上傳) (不常用)
let data =
let formdata =
newformdata()
for(
let key in data)
axios.
post
('/位址'
,formdata)
.then
(res=>
)
axios.
put(
'/位址'
,data)
.then
(res=>
)
axios.
patch
('/位址'
,data)
.then
(res=>
)
//delete 請求 (具體怎麼寫,需要跟後台進行溝通)
<
!-- one--
>
//引數會在url上拼接,query string parameters
axios.
delete
('/delete',}
).then
(res=>
)<
!-- two --
>
//引數不會在url上拼接,引數在request payload
axios.
delete
('/delete',}
).then
(res=>
)
}
d.請求方式具體是由後端定義,可協商希望用哪種get:獲取資料
post:新建,提交資料(表單提交+檔案上傳:、json檔案、excel)
put:更新資料 (所有資料推送到後端,後端將資料更新到資料庫中)
patch:更新資料(只將修改的資料推送到後端)
delete:刪除資料
e.併發請求:同時進行多個請求,並統一處理返回值例:聊天系統需要同時展示個人資訊和好友列表,而這是通過兩個介面來請求的,需要同時處理兩個介面的資料
created()
))}
a.例項//當後端介面位址有多個,並且超時時長不一樣,很繁瑣
在例項中配置這兩種引數,用例項去請求,方便
created()
)let axios2 = axios.
create()
instance.
get(
'/位址').
then
(res=>
) axios2.
get(
'/位址',)
.then
(res=>
)//不建立例項,直接axios.get也行,但是要確定在整個專案裡面用的是一種後端網域名稱,
//如果是用了兩個後端網域名稱,或者是不同介面需要的超時時長不一樣,此時就需要建立乙個例項了
}
超時時長:發起http請求時,如果服務端長時間沒有返回資料,介面會報超時401
一般具體的超時時長由後端進行定義,請求了乙個特別大的資料後端進行處理,一旦處理時間過長,比如超過1秒,後端會返回401,告訴你超時了,前端也需要做一些處理
超時處理的原因:請求時間過長,會阻塞後端的內容,給伺服器造成很大的壓力,所以要及時釋放不需要的,超時了就不需要了,請求就取消了
b.配置引數都有哪些?axios.create(, //請求頭
params:{}, //請求引數拼接在url上
data:{}, //請求引數拼放在請求體
})
axios全域性配置
(優先順序:低)
(用的少,侷限性較大)
axios例項配置 (中)
let instance = axios.
create()
instance.defaults.timeout =
3000
axios請求配置 (高) (用的多)
instance.
get(
'/某乙個位址',
)
c.***status code:304 (正常是第一次返回的介面是200,第二次訪問這個介面的時候資料沒有變化,瀏覽器會自動識別返回狀態304,沒有更改,重定向,這樣資源載入會更快)
查閱…理解…歸納…持續更新…
axios 和 cookie 的那些事
後端寫好,前端寫好,postman測試做好,一切都沒有問題,但是 實際用axios來實現登陸功能的時候問題就來了.什麼情況?登陸根本用不了啊!每次都提示我沒有登陸!乙個登入的場景,用axios傳送post請求去登入,能成功返回資料,但是用作許可權驗證的cookie就是沒有儲存,經查閱,axios 預...
remap的那些事
月14日 今天還在看啟動 看到target.c這裡。先說說target.c的職責。target.c檔案包含和目標初始化相關的 如remap設定 系統時鐘設定和儲存器加速模組設定等,以及irq和fiq的異常處理空函式。好吧,這裡 看到了remap就好好查資料把它搞清楚咯!其實我前面看過這個了,只是人上...
AfxWinMain的那些事
afxwinmain函式原形如下 去掉了原來的很多沒用的注釋和累贅 cpp view plain copy print?int afxapi afxwinmain afxwininit函式 建立當前應用程式主線程 initinstance函式 內部通過create 函式來完成視窗的註冊,建立更新和顯...