2012-02-14 143 views
7

我有一個表單,其目標是一個iframe。Internet Explorer攔截XML響應

提交表單時,響應是XML,我有Javascript來分析響應。

我注意到,當在IE上運行時,IE攔截響應並將其視爲RSS源,所以我的代碼從未收到響應。如果我禁用RSS提要(從互聯網選項,內容選項卡)一切正常。

我將響應的內容類型設置爲「text/xml; charset = UTF-8「,但它仍然不起作用。

有什麼解決方法嗎?

+1

嘿,我喜歡在IE瀏覽這類奇怪的東西。 – Oliver 2012-02-14 17:13:04

回答

2

最好的解決方法是在這種情況下不要使用iframe。這聽起來像IE瀏覽器正在抓住http響應並自行讀取它。是否有一個原因,你沒有進行AJAX調用來檢索信息?這聽起來像你依靠JavaScript來處理響應,所以我認爲使用XMLHttpRequest對象會對你更好:http://www.w3.org/TR/XMLHttpRequest/

如果這太複雜了,請查看像jQuery的庫:http://jquery.com/內置(和更簡單)的功能,使AJAX調用和處理響應。

爲了擴展這個,你需要將表單的submit函數綁定到一個JS函數(或者使用jQuery來完成),然後選擇表單數據,通過AJAX請求發送,然後處理響應。 jQuery有一個內置函數serialize(),用於將頁面上的表單數據轉換爲準備在ajax()函數中用於發送到服務器的信息。如果您不熟悉XMLHttpRequest對象,我會強烈建議使用像jQuery這樣的庫來完成此任務。

0

是的,還要確保該文件是用正確的內容配置使用頭文件輸出,這樣做IE被「response.xml」,而不是「response.php」或一些這樣...

'內容 - 處置:附件; filename =「response.xml」'

+0

實際上,附件配置在Chrome中有時候很奇怪,因此請確保您閱讀了用戶代理信息,並且只在IE中執行附件。不管用於訪問它的網址,只要內容類型設置正確,其他瀏覽器通常都會正確處理響應。 – Brian 2012-02-16 16:44:21

1

確定,發現問題... 我的回覆XML包含FEEDBACK標籤。 IE瀏覽器將這些標籤視爲RSS訂閱源。將標籤名稱更改爲FDBACK可解決此問題...

MS,爲什麼沒有記錄?