【问题标题】:Javascript cookie value is lost after loading another page加载另一个页面后,Javascript cookie 值丢失
【发布时间】:2015-11-03 21:30:38
【问题描述】:

我有一个隐藏表单的页面,其中一个值由 php 回显。

我使用 javascript/jQuery 获取值并将其存储在 cookie 中。用户被重定向到一个外部页面,然后在另一个页面上被重定向回我的站点。在此页面上,cookie 值为“0”(该值已丢失)。

更新:最后一页位于设置 cookie 的页面上方的目录中。我在cookie上设置了“路径”,但还是不行。

所以 - 首先我进行重定向(通过提交表单),然后设置 cookie:

function sendPostRequest(){
    var $ = jQuery;

    document.myform.submit(); //submitting the form

    var now = new Date();
    var time = now.getTime();
    time += 144000 * 1000;
    now.setTime(time);
    document.cookie =
        'member_id=' + $('#member_input').val() + //getting the value, setting the cookie
        '; expires=' + now.toUTCString() +
        '; path=http://domain-name/the-last-page/';

    console.log(document.cookie); //the cookie is set
    alert($('#member_input').val());
} 

在重定向后设置 cookie。

当用户从外部页面返回到新页面时,它显示member_id=0。所以失去了价值。

我怀疑“路径”有问题。我之前尝试过path=/。初始页面的路径如下:http://domain-name/directory/the-first-page/

更新 2: 另一个可能相关的信息是初始页面不是 SSL 加密的,但外部页面是 SSL 加密的,而最终页面不是。

【问题讨论】:

    标签: javascript jquery cookies


    【解决方案1】:
     var d = new Date();
     var days=5;
        d.setTime(d.getTime() + (days*24*60*60*1000));
        var expires = ""+d.toUTCString();
    
    document.cookie =
            'member_id=' + $('#member_input').val() + //getting the value, setting the cookie
            '; expires=' + expires +
            '; path=/';
    

    使用日期设置 cookie 的到期日期,并使用此公式设置到期天数

    【讨论】:

    • 我得到了相同的结果 - 但我刚刚意识到最后一页位于不同的目录中(我更新了原始帖子)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多