天天看點

axios的content-type是自動設定的

一.  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 問号後面的)   如下圖: 

axios的content-type是自動設定的

    4. data形式傳參, axios會自動處理設定Content-Type不需要手動設定

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的content-type是自動設定的

        在 

axios

 的 

default.js

 中,有一個函數專門轉換 

data

 參數的 :

axios的content-type是自動設定的

              注意: 上面隻是舉例 

data

 傳遞參數的一種情況哈!其實

data

 也有在位址欄 上 拼接的情況,或者 是檔案上傳的等情況。太多了,這裡 隻是講清楚使用的方式。

              2.  處理 

params

         在

axios

檔案中 的 

adapt/ xhr.js

 中,我們可以看到 :

axios的content-type是自動設定的

                buildUrl 一些關鍵代碼如下 :

axios的content-type是自動設定的

參考連結 : https://blog.csdn.net/qq_41499782/article/details/118916901

                 https://segmentfault.com/q/1010000018679505?utm_source=sf-similar-question

                 https://segmentfault.com/q/1010000040731240

那時候我隻有一台錄音機也沒有電腦 也不敢奢求說唱會讓自己的生活變好

繼續閱讀