您好,登錄后才能下訂單哦!
本篇內容介紹了“xhr中的response和responseText有什么區別”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
xhr中的response和responseText區別
在web前端,一次http請求,對應著一個xhr實例(基本的面向對象概念)。
這個xhr實例上,就可以取到http協議中規定的各種協議屬性。本質上,所有的請求響應報文的主體,都是二進制的數據,我們傳輸的文本內容,也是編碼好的二進制數據。
http規范中規定了一個Content-type頭,用來指明數據主體的格式,來告訴收發的兩端將二進制的數據主體按照什么類型進行解析。而這兩個接口(response和responseText),其實只是提供了一些便捷的接口,配合responseType,方便用戶獲取到解析好的響應,省去手動解析響應主體的步驟。
如果你想詳細理解的話,其實你需要去了解下數據傳輸時候的編碼和解碼。不同mimetype的數據,傳輸時候的編碼方式是不同的。
responseText讀取
普通的文本(text/plain),就是編碼好的字串,這兩個接口上都可以直接讀取。
json(application/json),傳輸時候,其實是序列化后的json字串,傳輸時候是按照字串傳輸的。前端接收到的時候,其實可以直接在responseText上,按照字符串解析成一個json字串,然后手動JSON.parse。也可以手動指定responseType,直接在response上獲取解析好的json對象。
document(text/html),如果指定好了responseType,responseText可以獲取到html文本,response卻可以獲取到解析好的DOM對象。
對于其他數據,比如媒體類型(視頻,音頻),普通二進制流,如果你去responseText獲取,那肯定就是亂碼了,因為這種二進制肯定沒法按照DOMString解析。但是你卻可以指定好responseType為blob,在response上獲取到Blob對象,然后再通過對應的工具進行處理解析。
“xhr中的response和responseText有什么區別”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。