jQuery Ajax中dataType 和 content-type 參數(shù)的作用詳解
dataType
在AJAX請(qǐng)求中,dataType參數(shù)主要用于指定期望從服務(wù)器返回的數(shù)據(jù)類型。這個(gè)參數(shù)常見于jQuery的AJAX方法中。
作用:
1、告訴AJAX請(qǐng)求如何解析服務(wù)器返回的數(shù)據(jù)。
2、影響success回調(diào)接收的數(shù)據(jù)格式。如果設(shè)置dataType:'json',jQuery會(huì)自動(dòng)把響應(yīng)數(shù)據(jù)解析成JavaScript對(duì)象,而不是原始字符串,所以無需手動(dòng)JSON.parse。
3、幫助jQuery設(shè)置正確的Accept請(qǐng)求頭(部分情況下)。比如,dataType:'json'會(huì)在請(qǐng)求頭中添加 Accept:application/json
對(duì)比 Fetch API / Axios
Fetch API 沒有dataType,而是用.json()、.text()、.blob()方法
fetch('/data').then(response=>response.json()) //類似于 dataType:'json'
                .then(data=>console,log(data))Axios 會(huì)自動(dòng)基于 Content-Type解析,但也可以強(qiáng)制指定responseType
axios.get('/api',{responseType:'json'}) //類似 dataTypeContent-Type
Content-Type是HTTP請(qǐng)求和響應(yīng)中最重要的頭部之一,它用于指定請(qǐng)求或響應(yīng)中傳輸?shù)臄?shù)據(jù)類型,讓服務(wù)器或客戶端知道如何正確解析數(shù)據(jù)。
作用:
1、告訴服務(wù)器客戶端發(fā)送的是什么格式的數(shù)據(jù)
2、告訴客戶端服務(wù)器返回的是什么格式的數(shù)據(jù)
3、確保數(shù)據(jù)能正確解析和處理
//在請(qǐng)求中(客戶端 -> 服務(wù)器) Content-Type:'application/json' //表示客戶端發(fā)送的是JSON格式的數(shù)據(jù) // 在響應(yīng)中(服務(wù)器 -> 客戶端) Content-Type:'text/html;charset=UTF-8' //表示服務(wù)器返回的是UTF-8編碼的HTML文檔
常見Content-Type值:
| 類型 | 說明 | 典型用途 | 
| application/json | JSON字符串 | API 請(qǐng)求/響應(yīng) | 
| application/x-www-form-urlencoded | URL編碼的表單數(shù)據(jù) | HTML表單提交 | 
| multipart/form-data | 包含文件上傳的表單數(shù)據(jù) | 文件上傳 | 
| text/html | HTML文檔 | 網(wǎng)頁返回 | 
| text/plain | 純文本 | 簡(jiǎn)單文本數(shù)據(jù) | 
| text/css | css樣式表 | 樣式文件 | 
| text/javascript | JavaScript代碼 | JS文件 | 
| image/png | PNG圖片 | 圖片文件 | 
注意事項(xiàng):
1、get請(qǐng)求通常不需要設(shè)置Content-Type,因?yàn)镚ET請(qǐng)求一般沒有請(qǐng)求體。
2、post/put請(qǐng)求必須正確設(shè)置Content-Type,否則服務(wù)器可能無法正確解析數(shù)據(jù)
3、瀏覽器對(duì)某些Content-Type有安全限制(如跨域請(qǐng)求)
4、字符編碼可以附加在Content-Type中:text/html;charset=UTF-8
Content-Type與Accept的區(qū)別:
Content-Type:描述當(dāng)前發(fā)送的數(shù)據(jù)類型
Accept:描述客戶端希望接收的數(shù)據(jù)類型
// 客戶端發(fā)送表單數(shù)據(jù)、但希望接口JSON格式的響應(yīng) Accept:application/json Content-Type:application/x-www-form-urlencoded
到此這篇關(guān)于jQuery Ajax中dataType 和 content-type 參數(shù)的作用詳解的文章就介紹到這了,更多相關(guān)dataType 和 content-type 參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
 用AJAX技術(shù)實(shí)現(xiàn)在自己Blog上聚合并顯示朋友Blog的最新文章
在自己Blog上聚合并顯示朋友Blog的最新文章,這樣方便自己及時(shí)了解朋友的消息,另外,也方便訪問者找到和本Blog相關(guān)的blog和文章2014-05-05
 Ajax工作原理及優(yōu)缺點(diǎn)實(shí)例解析
這篇文章主要介紹了Ajax工作原理及優(yōu)缺點(diǎn)實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
 用Promise解決多個(gè)異步Ajax請(qǐng)求導(dǎo)致的代碼嵌套問題(完美解決方案)
這篇文章主要介紹了用Promise解決多個(gè)異步Ajax請(qǐng)求導(dǎo)致的代碼嵌套問題(完美解決方案),需要的朋友可以參考下2017-02-02
 聊一聊數(shù)據(jù)請(qǐng)求中Ajax、Fetch及Axios的區(qū)別
axios、fetch和ajax的區(qū)別在網(wǎng)絡(luò)上存在很多文章,下面這篇文章也是給大家介紹了關(guān)于數(shù)據(jù)請(qǐng)求中Ajax、Fetch及Axios區(qū)別的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
 在實(shí)戰(zhàn)中可能碰到的幾種ajax請(qǐng)求方法詳解
這篇文章主要給大家分享了在實(shí)戰(zhàn)中可能碰到的幾種ajax請(qǐng)求方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
 AJAX淺析數(shù)據(jù)交換的實(shí)現(xiàn)
在AJAX中,最常用的就是JSON,XML因?yàn)楸容^冗雜所以用的比較少。所以我們先來說基于JSON的數(shù)據(jù)交換。最后我們還會(huì)提到在數(shù)據(jù)交換中出現(xiàn)亂碼的形式2022-08-08

