我怎样才能将一条GET/POST数据附加到登录用户的每个服务器请求中?

Mik*_*keN 0 django jquery

我希望在我的网页的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)


Joe*_*Joe 5

听起来像隐藏字段的经典案例.显然,当你发送HTML时,你需要某种方式来了解用户是谁.注意,这根本不是安全的,用户可能会发送他们想要的任何数据.

<input type="hidden" name="fieldname" value="fieldvalue" />
Run Code Online (Sandbox Code Playgroud)