window.location和window.open问题

时间:2010-10-05 15:15:07

标签: java javascript jsp websphere

我似乎无法解决这个问题。

最初,JSP代码在Javascript中有一个函数,可以从另一个服务器调用jsp:

window.open("<%= otherServer %>/ourreports/Company/fooreport.jsp?index"+index,"Foo",options);

其中otherServer是本地服务器(http://192.168.4.40:8080) 这很好用,并会用fooreport.jsp弹出一个新窗口。

现在的任务是指向同一服务器中的jsp。 所以,我把它改成了

window.open("/reports/Company/fooreport.jsp?index"+index,"Foo", options);

我会得到下载文件弹出窗口而不是页面

我也试图做以下所有事情:

window.location = "/reports/Company/fooreport.jsp?index="+index;
window.location.href = "/reports/Company/fooreport.jsp?index="+index;
window.location = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;
window.location.href = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;

我仍然可以通过弹出窗口将fooreport.jsp下载到我的电脑上。

jsp格式正确,有DOCTYPE,标签,&lt;%@ page声明......它基本上与之前调用的jsp相同

我正在使用WebSphere 7.5.4而java是1.5

2 个答案:

答案 0 :(得分:0)

如果响应的window.location标头设置为Content-Disposition,则

Attachment应该有效。

response.setHeader("Content-Disposition", "attachment; filename=yourfile.ext");

注意到在JSP中执行此操作是个坏主意。如果响应涉及二进制数据,JSP可能会破坏它。在Servlet中完成这项工作。 JSP旨在用not编写模板文本来编写Java代码。

答案 1 :(得分:0)

问题出在JSP中。 使用window.location和window.open的调用适用于其他JSP。

问题出在“&lt;%page”声明中。 我删除了它们,所以不记得确切,但它与Content-Type和ISO设置有关。 我把它们全部拿出来,只留下“&lt;%page import”声明,现在它可以正常工作。