您将什么 URL 传递给 window.open()?让 IE 8 在弹出窗口中维护 JSESSIONID 的一种简单方法是在 portlet 标记中对 window.open() 的调用中使用相对URL。关键是域名保持完全相同。这是 onclick 事件中带有 window.open() 的按钮的示例:
<button onclick="javascript:window.open('/wps/portal')">Home Page</button>
我正在使用 Websphere Portal,所以“/wps/portal”只是链接到主页。
另外,您打算作为弹出窗口的目标是什么?具有相同会话的不同门户页面?
更新:鉴于 window.open() 的目标是托管在同一域上的独立 Web 应用程序...
门户网站服务器和托管 Web 应用程序的应用程序服务器具有独立的会话,但默认情况下它们都使用名为 JSESSIONID 的 cookie。第一次访问 Web 应用程序时,应用程序服务器会覆盖门户的 cookie,从而导致对门户的每个后续请求都具有错误的会话 ID。当这发生在我身上时,我的解决方案是配置门户以将其会话 cookie 命名为其他名称(例如 PORTALSESSIONID),这样两者就不会发生冲突。