Content-Type 之 application/json 與 text/javascript


我們一般在服務端返回 json 格式數據給瀏覽器端時,會使用下面的代碼:

response.setContentType("text/javascript;charset=UTF-8"); 

或者:

response.setContentType("application/json;charset=UTF-8"); 

但是兩種什么區別呢?

其實很簡單。前者用於返回js代碼,后者專門用於返回 json 格式的數據。

也就是說,前者 返回的 js 代碼,會自動在 瀏覽器中進行執行,就像返回的結果被 eval(result) 調用了一樣。也就是說返回的字符串,會被當做 js 代碼,被瀏覽器的js引擎進行執行。而不是當做普通的字符串顯示在瀏覽器中。

 

后者專門用於返回 json 格式的數據,而 json 格式是 js 代碼的一個子集。也就是說 json 格式的數據,也是 js 代碼,也會被瀏覽器的js引擎執行,而生成 json 對象。

但是 json 格式的范圍比 js 代碼的范圍要小很多。json 是 js 的一個子集。關於 json 的具體格式要求,參見:http://www.json.org/

 

所以如果返回的是 json 格式,那么用兩者都是可以的。

------------------------------

服務端 向 客戶端 發送 JSON數據 時: 
    Content-Type = 'application/json;charset=UTF-8' 

服務端 向 客戶端 發送 JS 代碼 時: 

    Content-Type = 'text/javascript;charset=UTF-8' 

服務端 判斷 客戶端 提交的是否是 JSON數據 時 : 

    Content-Type = 'application/json;charset=UTF-8' 
    Content-Type = 'text/json;charset=UTF-8' 
    Content-Type = 'text/javascript;charset=UTF-8' 
    Content-Type = 'application/javascript;charset=UTF-8' 

只要 Content-Type 滿足上面4個條件中的 任意一個時,就可以認為提交的數據是 JSON數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM