java窗口。位置和窗口。公开问题
我似乎无法解决这个问题
最初,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、标记和<;%@页面声明。。。它本质上与以前调用的jsp相同
我使用的是WebSphere7.5.4,java是1.5
# 1 楼答案
问题在于JSP。 用窗口打电话。位置和窗口。open在其他JSP中运行良好
问题出在“<;%page”声明中。 我删除了它们,所以记不清了,但这与内容类型和ISO设置有关。 我把它们都去掉了,只留下了“<;%page import”声明,现在它可以正常工作了
# 2 楼答案
如果响应的
Content-Disposition
头被设置为Attachment
,那么window.location
应该可以工作值得注意的是,在JSP中这样做是个坏主意。如果响应涉及二进制数据,JSP可能会损坏它。在Servlet中完成这项工作。JSP是用来写模板文本的,not是用来写Java代码的