【问题标题】:JQuery Cookie values not maintained while moving from http to https从 http 移动到 https 时未维护 JQuery Cookie 值
【发布时间】:2011-07-23 10:42:51
【问题描述】:

我正在使用 jquery 创建 cookie,请参见下面的代码:

var divID = $(link).next(".open-block-holder").find("div:first").attr("id");
$('#panelOpen').val(divID);                             
$.cookie('currentPanelOpen', divID);

上面的 Cookie 'currentPanelOpen' 是在 HTTP 页面中创建的,现在在我的登录单击时,出于安全原因,我正在以 HTTPS 重新加载整个页面。问题是我的 cookie 'currentPanelOpen' 值在移动到 HTTPS 页面时没有得到维护。 (仅第一次发生,一旦进入 https 模式并再次返回 http 页面并执行上述步骤即可)

令人惊讶的是,如果我直接以 HTTPS 模式打开页面,那么该值将保持不变并打开我点击的面板。

请推荐!

谢谢。

【问题讨论】:

  • 您是否尝试过像这样使其安全:$.cookie('currentPanelOpen', divID, { expires: 2, path: '/', domain: 'yourwebsite.com', secure: true });? (source)
  • 是的,在那种情况下我没有创建 cookie

标签: jquery


【解决方案1】:

这是因为在普通 HTTP 会话中创建的 cookie 和在 HTTPS 会话中创建的 cookie 之间存在根本区别。后者也像连接一样被加密(因为如果您的连接被加密但存储在您机器上的任何数据都没有被加密,这将是一个巨大的安全漏洞)

我有 2 条建议,其中一条可能不起作用:

1) 像这样使用 cookie 调用(前提是你使用的是我熟悉的那个)

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });

并尝试将域设置为 https(创建 2 个 cookie,一个用于 http,一个用于 https)或尝试“安全”标志,true/false 等。或者

2) 使用 jQuery 的 AJAX 功能在 PHP (http://www.reynoldsftw.com/2009/03/using-jquery-and-ajax-to-create-php-sessions/) 中创建用户会话,然后应该通过在 document.ready 调用或代码本身中重新加载后打开它来维护“panelOpen” div...同时确保再次设置 https cookie。

【讨论】:

  • “并尝试将域设置为 https(创建 2 个 cookie,一个用于 http,一个用于 https)或尝试“安全”标志,true/false 等是什么意思? ,怎么做?
  • $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true/false(toggle this) }) ;
  • 如果我使用上述语法 $.cookie("currentPanelOpen",divID,{ expires: null, path: '/', domain: 'dxbmiwwekdev1', 则没有创建我的 cookie 的任何原因, secure: true })...如果我要删除我的域,它会创建 cookie,但是我的问题仍然存在
猜你喜欢
  • 2013-02-10
  • 1970-01-01
  • 2012-12-28
  • 2012-10-28
  • 2011-06-05
  • 1970-01-01
  • 2015-09-02
  • 2011-03-07
  • 1970-01-01
相关资源
最近更新 更多