我希望在我的网页的to中有一个输入元素,其中包含登录用户的一些全局设置.我如何将这段数据附加到我的Web应用程序中的每个GET/POST和AJAX请求中?我想把它解决到已经拥有大量代码的现有网站上.
Cookie不是我想要的,因为在同一个应用程序的不同选项卡/窗口中,同一个站点不能有两个不同的cookie(HTML输入可能对两个不同的登录用户具有不同的值选项卡/窗口.)
更新:为了澄清,我想要的功能是在同一个浏览器中桥接两种不同的模式,让用户通过选项菜单在两种模式之间切换.当前模式会影响用户所做的一切甚至是短/小的Ajax请求(每个进入系统的请求都需要知道浏览器窗口所处的模式.)因此,同一浏览器中的两个不同选项卡的行为会有很大差异.其他如果他们处于不同的模式.
bmb*_*bmb 11
如果我理解正确,您的应用程序有两种模式.我们称之为红色和蓝色.用户打开窗口1并选择红色.然后用户打开窗口2并选择蓝色.如果您仅使用会话,那么如果用户返回窗口1并单击任何内容,则结果将为蓝色,因为前一次单击为蓝色,即使窗口1为红色.
我建议使用mod_rewrite(或非Apache服务器上的等效项)来修改URL以指示模式.
传入请求
example.com/red/yourscript ==> example.com/yourscript?mode=red
example.com/blue/yourscript ==> example.com/yourscript?mode=blue
Run Code Online (Sandbox Code Playgroud)
如果您网页上的所有链接和表单都是相对的而非绝对的,则网址中应包含模式信息.
也就是说,如果页面URL是
example.com/red/yourscript
Run Code Online (Sandbox Code Playgroud)
然后页面上的链接看起来像这样
<form action="anotherscript">
Run Code Online (Sandbox Code Playgroud)
将有一个URL
example.com/red/anotherscript
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用子域
red.example.com/yourscript ==> example.com/yourscript
blue.example.com/yourscript ==> example.com/yourscript
Run Code Online (Sandbox Code Playgroud)
如果将服务器配置为从同一个实际位置提供两个子域,则不需要mod_rewrite.
使用子域将允许您从每个传入请求的http_referer字段中提取模式,您不需要添加查询字符串.
最后,添加绝对链接以显式更改模式.
<a href="http://example.com/red/changemode">Click here to go to RED mode</a>
<a href="http://example.com/blue/changemode">Click here to go to BLUE mode</a>
Run Code Online (Sandbox Code Playgroud)
听起来像隐藏字段的经典案例.显然,当你发送HTML时,你需要某种方式来了解用户是谁.注意,这根本不是安全的,用户可能会发送他们想要的任何数据.
<input type="hidden" name="fieldname" value="fieldvalue" />
Run Code Online (Sandbox Code Playgroud)