IE6将IFRAME响应解释为文件

问题描述

| 我在IE6中遇到了奇怪的行为,我需要一些帮助来解决它。 我使用javascript将以下DOM元素添加到文档主体的末尾:
<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提交表单。 ѭ1指向一个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向我显示一个文件下载”对话框,要求我保存一个名为“ 5”的文件。如果我将其保存,则该文件包含
{success: true}
,应将其放置到iframe中!另外,永远不会调用该回调。 但是,任何后续呼叫都可以正常工作!响应数据最终出现在iframe文档主体中,并且回调被执行。 我比较了第一次和第二次尝试的数据包跟踪,它们是相同的,因此这一定是浏览器问题。 IE6为什么要在第一次将响应保存到文件中? 谢谢。 更新: 我只是用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
仍然需要弄清楚为什么它不能在Oracle上运行...     

解决方法

        解决方案是将我的Servlet中的“ 8”显式设置为“ 9”。
response.setContentType(\"text/html\");