2011-01-25 74 views

回答

3

讓我們考慮一下IE。假設您有一個隱藏的iFrame,用於請求文件下載。例如

<iframe src="getFile?id=123"> 

現在,服務器可以發送JSON編碼的錯誤消息像

{ 
    error: 'File 123 does not exist', 
    retryLater: false 
} 

如果錯誤消息爲application/json,會出現一個下載對話框發送,因爲JSON文本是錯誤的爲實際的文件。

另一方面,MIME類型text/plain將導致消息在iFrame中呈現,您可以將其解壓縮,並將其轉換爲特殊的彈出窗口或使用JScript的東西。


(編輯)

真實的例子:EXTJS Fileupload - Problem with IE8 security bar

+0

感謝pumbaa80,並且考慮到Eric在下面說了什麼,它看起來像使用text/x-json可能是最好的。 – 2011-01-30 21:19:38

1

這已經討論之前:

What is the correct JSON content type?

阻斷MIME類型的任何防火牆都將導致與任何AJAX風格的Web應用程序的問題,所以我真的不擔心。

+0

感謝您的評論,是的,我看你指出dicussion。我正在尋找更多真實世界的具體例子,一些SO用戶可能有經驗。像Pumbaa80下面的答案。很高興知道防火牆。謝謝 – 2011-01-26 09:32:09

1

已經剛剛與IE8一個長期的鬥爭自己對這個我發現,如果你正在裝載JSON到iframe的文本/ plain,IE8將把它包裝在一個標籤中。如果您隨後使用innerHTML獲取內容並嘗試將其解析爲json,則會失敗。

我最後不得不發送內容爲text/html,這似乎只是完全錯誤的,但在IE瀏覽器的工作原理和似乎並沒有亂了其他瀏覽器更現代的AJAX處理。

相關問題