
引用jquery ajax
他的作用是告訴服務(wù)器,瀏覽器發(fā)來(lái)了什么數(shù)據(jù)。一般情況下,我們不需要設(shè)置它。默認(rèn)值為'application/x-www-form-urlencoded; charset=UTF-8');
上傳文件時(shí),使用jquery的同學(xué)知道,我們會(huì)將content-type設(shè)置成flase
$.ajax({
...
processData: false,
contentType: false,
...
})
咦,請(qǐng)求一發(fā)送

request headers1
content-type自動(dòng)設(shè)置成了
Content-Type:multipart/form-data; boundary=----WebKitFormBoundarynXvTC1AHtFbVvKTL
// WebKitFormBoundarynXvTC1AHtFbVvKTL這是隨機(jī)生成的分界符
//目的是防止上傳文件中出現(xiàn)分界符導(dǎo)致服務(wù)器無(wú)法正確識(shí)別文件起始位置
如果不給ajax設(shè)置contType,ajax會(huì)自動(dòng)發(fā)送什么request headers呢?

request headers2
發(fā)現(xiàn)這是默認(rèn)的request-headers,可知jquery的ajax的設(shè)置機(jī)制為若沒(méi)有content-type屬性,則默認(rèn)設(shè)置為
application/x-www-form-urlencoded; charset=UTF-8** contentType: false設(shè)置的目的是讓ajax不要操作content-type**
參考資料
ajax
淺談contentType = false--fisecoco