http請求中Content-Type以及qs.stringify的使用


Content-Type

Content-Type是指http/https發送信息至服務器時的內容編碼類型,contentType用於表明發送數據流的類型,服務器根據編碼類型使用特定的解析方式,獲取數據流中的數據。

在網絡請求中,常用的Content-Type有如下:
常見的頁面資源類型:text/html, text/plain, text/css, text/javascript, image/jpeg, image/png, image/gif,
ajax的請求,表單提交或上傳文件的常用的資源類型:application/x-www-form-urlencoded, multipart/form-data, application/json, application/xml 等。

 

接口數據傳輸方式 form data、payload

Payload      Content-Type: 'application/json; charset=utf-8'
Form Data    Content-Type: 'application/x-www-form-urlencoded'

POST提交數據有兩種數據傳輸方式,這兩種方式瀏覽器是通過Content-Type來進行區分,如果是 application/x-www-form-urlencoded的話,則為formdata方式,如果是application/json或multipart/form-data的話,則為 request payload。

如果是GET請求,則為Query String Parameters

 

qs.stringify的使用

axios默認的content-type是application/json
傳輸的樣式是

{
    name:'小明',
    age:'29'
}

如果使用的qs進行序列化,(注:qs.stringify()將對象序列化成URL的形式,以&進行拼接。安裝axios即可使用qs。)

那么content-type就是application/x-www-form-urlencoded
也就是常說的表單提交,傳輸的樣式是formdata

name:'小明', 
age:'29'

后台urlencoding后是

name='小明'&age='29'

對比下JSON.stringify。JSON是正常類型的JSON,

var a = {name:'hehe',age:10};
 qs.stringify(a)
// 'name=hehe&age=10'
JSON.stringify(a)
// '{"name":"hehe","age":10}'

是否需要用qs去序列化參數完全取決於后端要怎么接受數據。

實例:

var qs = require("qs");
export const AxiosPost = (url, params) => { 
    return axios.post(url,qs.stringify(params), {headers: {"Content-Type": "application/x-www-form-urlencoded" } })
}

 

參考地址:https://www.cnblogs.com/tugenhua0707/p/8975615.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM