【问题标题】:How do I open a new window with javascript and use the parent window's existing session?如何使用 javascript 打开一个新窗口并使用父窗口的现有会话?
【发布时间】:2010-01-09 03:10:04
【问题描述】:
我正在使用window.open 打开一个窗口,并且我正在丢失服务器会话。
有没有办法用 Javascript 打开一个窗口并使用同一个会话?
我需要这个在 IE 7 及更高版本中工作。
我在服务器端使用 ASP.NET。服务器没有无会话 cookie 状态。 <sessionState mode="InProc" timeout="15" />
【问题讨论】:
标签:
asp.net
javascript
session
window
【解决方案1】:
您似乎已启用无 cookie 会话状态。
ASP.NET 的方法类似于 Pekka 提到的 PHP 方法,但您需要调用
window.open("/(S(<%= Session.SessionID %>))/NewPage.aspx");
或者更改您的 web.config 以强制使用 cookie 进行会话。
【解决方案2】:
我不知道您使用的是哪种服务器端语言,但通常,您可以使用 GET 参数将会话填充到新窗口中。
在 PHP 中,你可以这样使用:
window.open("newurl.php?PHPSESSID=<? echo session_id(); ?>");
我认为 PHP 使用它以这种方式获得的 ID 继续会话(实际上从未尝试过,但应该可以工作)。如果没有,您将检查 GET 变量是否存在,并使用 session_id() 将会话 ID 强制到脚本上,并将 ID 作为参数 before session_start()。