一. axios參數的傳遞方式
首先我們要知道 參數傳遞一般有兩種,一種是 使用
params
, 另一種是
data
的方式,有很多的時候我們看到的前端代碼是這樣的。
1. get請求:
axios({
method: 'GET',
url: 'xxxxx',
params: params,
})
或者
axios({
method: 'GET',
url: '/xxx?id=' + xxx,
})
2. post請求
axios({
method: 'POST',
url: '/xxxxx',
data: params,
})
或者
axios({
method: 'POST',
url: '/xxxxx',
params: params,
})
3.
params
的形式的傳參 參數會被拼接到url上面(params 是查詢參數,拼在 URL 問号後面的) 如下圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIjNwATO1QzM10yNyQzNygTM5AzNygDMyIDMy0yNzUzM2ITMvwFOwIjMwIzLcdzM1MjNyEzLcd2bsJ2Lc12bj5ycn9Gbi52YuIjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
4. data形式傳參, axios會自動處理設定Content-Type不需要手動設定
(1) 比如發送一個下面的請求, 會發現請求頭的content-type是
application/json;charset=UTF-8
axios({
url: '/login',
method: 'post',
data: {email: 'xxxx', password: 123123}
})
(2) 比如發送一個上傳檔案的請求formdata, 會發現請求頭的content-type是multipart/form-data
let formData = new FormData()
formData.append('file', file)
axios({
url: '/login',
method: 'post',
data: formData
})
二 . 檢視axios源碼, 對比 data和params兩種參數處理方法
1. 處理data
在
axios
檔案中 的
core/dispatchRequest.js
中:
在
axios
的
default.js
中,有一個函數專門轉換
data
參數的 :
注意: 上面隻是舉例
data
傳遞參數的一種情況哈!其實
data
也有在位址欄 上 拼接的情況,或者 是檔案上傳的等情況。太多了,這裡 隻是講清楚使用的方式。
2. 處理
params
在
axios
檔案中 的
adapt/ xhr.js
中,我們可以看到 :
buildUrl 一些關鍵代碼如下 :
參考連結 : https://blog.csdn.net/qq_41499782/article/details/118916901
https://segmentfault.com/q/1010000018679505?utm_source=sf-similar-question
https://segmentfault.com/q/1010000040731240
那時候我隻有一台錄音機也沒有電腦 也不敢奢求說唱會讓自己的生活變好