content-type的設置

引用jquery ajax

他的作用是告訴服務器,瀏覽器發來了什么數據。一般情況下,我們不需要設置它。默認值為'application/x-www-form-urlencoded; charset=UTF-8');
上傳文件時,使用jquery的同學知道,我們會將content-type設置成flase

$.ajax({
...
  processData: false,
  contentType: false,
...
})

咦,請求一發送


request headers1

content-type自動設置成了

Content-Type:multipart/form-data; boundary=----WebKitFormBoundarynXvTC1AHtFbVvKTL
// WebKitFormBoundarynXvTC1AHtFbVvKTL這是隨機生成的分界符
//目的是防止上傳文件中出現分界符導致服務器無法正確識別文件起始位置

如果不給ajax設置contType,ajax會自動發送什么request headers呢?

request headers2

發現這是默認的request-headers,可知jquery的ajax的設置機制為若沒有content-type屬性,則默認設置為
application/x-www-form-urlencoded; charset=UTF-8
** contentType: false設置的目的是讓ajax不要操作content-type**

參考資料
ajax
淺談contentType = false--fisecoco

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容