Javascript windows弹出窗口在显示dos之前关闭。xls

Javascript windows弹出窗口在显示dos之前关闭。xls,javascript,excel,jsp,internet-explorer-8,response,Javascript,Excel,Jsp,Internet Explorer 8,Response,我试图在IE8上的弹出窗口中显示文档,但在显示之前,窗口会自动关闭 代码如下: javascript: function hacerExportarExcel(){ var url = contextPath + "/exportarCarteraCreditoExcel.do" window.setTimeout("window.open('"+url+"', '_blank', 'width=950,height=500,scrollbars=yes')",1000); }

我试图在IE8上的弹出窗口中显示文档,但在显示之前,窗口会自动关闭

代码如下:

javascript:

function hacerExportarExcel(){
   var url = contextPath + "/exportarCarteraCreditoExcel.do"
   window.setTimeout("window.open('"+url+"', '_blank', 'width=950,height=500,scrollbars=yes')",1000);

}
行动:

try {

    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "inline; filename=ConsultaCartera.xls");       
    consulta.setPdf(response.getOutputStream());
    administracionCreditoConsulta.exportarCarteraCreditoExcel(consulta); 

} catch (Exception e) {

    logger.logError(e);

} finally {

    response.getOutputStream().flush();
    response.getOutputStream().close();

}
当请求新窗口时,它会弹出并开始加载,然后它关闭并给出以下异常:

2012-06-27 11:01:01951错误[LoggingFilter]日志()异常(147): ClientBortException:java.net.SocketException:对等方重置连接:套接字写入错误 位于org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327) 位于org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293) 位于org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:85) 在com.wincornixdorf.infinix.creditos.action.exportarcarterracreditoexcelaction.execute(exportarcarterracreditoexcelaction.java:82)

当我尝试在IE6中执行此操作时,效果很好,弹出窗口并显示excel。但它对IE 8不起作用

有人能帮忙吗


谢谢

您确定可以将其显示为内联内容吗?我的猜测是IE8总是试图下载这个文件,而不是在窗口中显示它,这将使它自动关闭新窗口。您是否在不同类型的文档中尝试了相同的代码,以确保其余的逻辑是正确的?您好!感谢您的回复!只有当我想显示一个文档类型.xls时,当文档类型为.pdf时,才会发生这种情况。这是类型为pdf时的代码,请尝试{response.setContentType(“application/pdf”);response.setHeader(“Content Disposition”,“inline;Grafico.pdf”);consulta.setPdf(response.getOutputStream());AdministrationCreditoconsulta.exportarGrafico(consulta);}捕获(异常e){logger.logError(e);}最后{response.getOutputStream().flush();response.getOutputStream().close();}唯一的区别是ContentTypeI假设浏览器不知道如何在窗口中处理该文档类型,因此默认为下载行为;即使你已经告诉了它,你好!我能解决!我所做的更改是对内容类型进行赋值:“application/vnd.xls”谢谢!很高兴找到埃德加!一定要将其作为答案发布,并为未来用户接受。