好吧,这让我发疯了。我什至无法让调试代码在这里工作。
使用https://github.com/carhartl/jquery-cookie,我设置了一个 cookie:
var link=$.getQueryParam('q');
var cookie_name="project_"+q+"_diff";
$.cookie(cookie_name,true,{expires:7,path:'/'});
我尝试在 PHP 脚本中读取此 cookie:
$cookie_name="project_".$q."_diff";
if($_COOKIE[$cookie_name]=='true')
{
echo "<!-- Cookie Status is TRUE -->";
// stuff
}
else
{
echo "<!-- Cookie Status is FALSE for cookie '$cookie_name' \n All cookies: ".print_r($_COOKIE,true)."\n-->";
// Other stuff
}
我在 Chrome 的控制台中验证了各种页面重新加载时 JS cookie 实际上已设置,并且我可以稍后访问它。
源代码结果?
<!-- Cookie Status is FALSE for cookie 'project_80afd7a53462bb02dfd39e359ac3f291_diff'
All cookies: Array
(
)
-->
我还在控制台中运行了以下命令,基于另一个 StackOverflow 问题,稍后在控制台中检索了结果,但仍然没有输出到 JS。
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/; domain=.compute.amazonaws.com";
}
我没有得到任何饼干回来。设置有点奇怪(在呈现的 Jinja 模板上运行 PHP),但所有其他标准变量都在工作,我只需要一个会话长的用户切换和 cookie 似乎是明显的(如果不合作的话)解决方案。如果没有人能解决这个问题,我愿意接受建议......