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