2011-05-28 44 views
0

我在IE6中得到一個奇怪的行爲,我需要一些幫助搞清楚。IFRAME響應解釋爲由IE6文件

我下面的DOM元素添加到使用javascript我的文檔主體的末尾:

<IFRAME id="qq-upload-handler-iframe0" style="DISPLAY: none" src="javascript:false;" /> 

<FORM method="post" target="qq-upload-handler-iframe0" encType="multipart/form-data" style="DISPLAY: none" action=/AgriShare-AD-Sys/ajaxfileupload?clientId=importSubmissionFromExcelLinkId&qqfile=AB_PTPTA_10358.xls> 
    <INPUT type="file" value="AB_PTPTA_10358.xls"> 
</FORM> 

然後我使用javascript提交表單。該action指向在其中返回以下一個servlet:

HTTP/1.1 200 OK 
Date: Fri, 27 May 2011 23:33:48 GMT 
Server: Oracle-Application-Server-10g/10.1.3.5.0 Oracle-HTTP-Server 
Set-Cookie: JSESSIONID=b59f0434f57ace32aebc8b6d113c7e48171824e1d157cf99152140657e6c68a5.e34PaNiLaNuPbO0OaN8Rb3aRbN50; path=/AgriShare-AD-Sys 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: application/octet-stream; charset=ISO-8859-1 


f 
{success: true} 
0 

我的目的是爲{success: true}在iframe中,在那裏我可以從我連着用iframe.attachEvent('onLoad', callback)回調訪問它的身體結束。回調完成後,我刪除表單和iframe,以便此代碼可以在同一頁面上再次運行。這實際上有效,但永遠不會第一次加載頁面後

我第一次提交該表單時,IE6向我展示了一個「文件下載」對話框,要求我保存一個名爲ajaxfileupload.xls的文件。如果我保存它,這個文件包含{success: true},它應該放在iframe中!此外,回調從未被調用。

但是,任何後續調用都可以完美工作!響應數據在iframe文檔主體中結束,回調得到執行。

我比較了來自第一次和第二次嘗試的數據包跟蹤,它們是相同的,所以這必須是瀏覽器問題。爲什麼IE6第一次想將響應保存到文件中?

謝謝。

UPDATE:

我只是想同樣的事情在Tomcat,問題已經消失。從Tomcat的迴應是這樣的:

HTTP/1.1 200 OK 
Transfer-Encoding: chunked 
Date: Sat, 28 May 2011 00:13:32 GMT 
Server: Apache-Coyote/1.1 

f 
{success: true} 
0 

仍需要弄清楚它爲什麼不能在甲骨文的工作,雖然...

回答

1

的解決方案是明確我的servlet的content-type設置爲text/html

response.setContentType("text/html");