我正在处理无 cookie 会话,我不打算通过 URL 传递变量,但我尝试使用 window.name 或隐藏表单。对于 window.name,我会这样做:
$(window).unload(function(){
if(location.href.indexOf(<my pages base url>) != -1){
// the user is going to my site
if($.parseJSON(window.name).previous_site.indexOf(location.protocol + '/' + location.host) != -1){
// now I know, that user was of my site
cookie_alternative = new Object();
cookie_alternative.previous_site = location.href;
cookie_alternative.session_id = $.parseJSON(window.name).session_id; // this is important
.....
window.name = $.toJSON(cookie_alternative);
}
else{
// the user was elsewhere
cookie_alternative = new Object();
cookie_alternative.previous_site = location.href;
cookie_alternative.session_id = <something new>;
.....
window.name = $.toJSON(cookie_alternative);
}
}
else{
//the user goes somewhere else
window.name = '';
}
});
所以我可以通过这种方式跟踪 session_id。如果我要使用隐藏输入字段,我想我会做类似的事情。现在,我希望 window.name 中的这个变量 (session_id) 像 cookie 一样工作 - 用户单击某个链接,这会将他带到我的 web 的不同部分 => 请求被发送到服务器,服务器响应并页面显示。有了这个请求,我想使用 post 将 session_id 发送到服务器(好像它是一个 cookie)——但我不知道该怎么做。我在想这样的事情:
$('a').click(function(){
$.post({
url: $(this).attr('href'),
data: $.parseJSON(window.name).session_id,
})
})
但我不认为它会起作用,正如我所说,我不会使用 URL 重写。其他方法可能是有一些隐藏的表单类型的帖子,点击链接设置表单的操作(链接的href),设置数据:session_id 并触发表单的操作。发送帖子以遵循下一页请求的任何想法?或者如何使用隐藏的表单域来实现同样的事情?任何帮助真的很感激..