我正在處理Web服務需要返回JSON數據。 I read that I should use application/json但我不確定這可能會導致什麼問題?使用MIME類型application/json可能會導致什麼問題?
例如,將舊的瀏覽器支持呢? (IE6 +,FF,Opera等)
或者是有可能的是背後的企業防火牆/代理服務器的用戶阻止MIME類型application/JSON?
什麼,如果有的話,問題你有以下這些建議?
我正在處理Web服務需要返回JSON數據。 I read that I should use application/json但我不確定這可能會導致什麼問題?使用MIME類型application/json可能會導致什麼問題?
例如,將舊的瀏覽器支持呢? (IE6 +,FF,Opera等)
或者是有可能的是背後的企業防火牆/代理服務器的用戶阻止MIME類型application/JSON?
什麼,如果有的話,問題你有以下這些建議?
讓我們考慮一下IE。假設您有一個隱藏的iFrame,用於請求文件下載。例如
<iframe src="getFile?id=123">
現在,服務器可以發送JSON編碼的錯誤消息像
{
error: 'File 123 does not exist',
retryLater: false
}
如果錯誤消息爲application/json
,會出現一個下載對話框發送,因爲JSON文本是錯誤的爲實際的文件。
另一方面,MIME類型text/plain
將導致消息在iFrame中呈現,您可以將其解壓縮,並將其轉換爲特殊的彈出窗口或使用JScript的東西。
(編輯)
感謝您的評論,是的,我看你指出dicussion。我正在尋找更多真實世界的具體例子,一些SO用戶可能有經驗。像Pumbaa80下面的答案。很高興知道防火牆。謝謝 – 2011-01-26 09:32:09
已經剛剛與IE8一個長期的鬥爭自己對這個我發現,如果你正在裝載JSON到iframe的文本/ plain,IE8將把它包裝在一個標籤中。如果您隨後使用innerHTML獲取內容並嘗試將其解析爲json,則會失敗。
我最後不得不發送內容爲text/html,這似乎只是完全錯誤的,但在IE瀏覽器的工作原理和似乎並沒有亂了其他瀏覽器更現代的AJAX處理。
感謝pumbaa80,並且考慮到Eric在下面說了什麼,它看起來像使用text/x-json可能是最好的。 – 2011-01-30 21:19:38