【问题标题】:jQuery $.cookie not reading cookie set by server responsejQuery $.cookie 不读取服务器响应设置的 cookie
【发布时间】:2023-03-12 12:40:02
【问题描述】:

$.cookie 没有读取服务器响应先前设置的 cookie。

我可以读取使用 $.cookie() 设置的 cookie。

我可以看到使用 Firefox 的 Web Developer 插件设置的所有域 cookie。
另外,服务器端可以看到请求cookie,所以浏览器肯定有它们。

我已经尝试过到期时间,但无济于事。

【问题讨论】:

  • 如果您彻底比较 cookie 会怎样?如果他们的行为不同 - 会有一些不同

标签: jquery jquery-cookie


【解决方案1】:

问题是服务器端正在发送带有 HttpOnly 设置的 cookie,如下所述:http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

以这种方式发送的 Cookie 无法通过 document.cookie 访问。这通常用于帮助保护 cookie 值免受您网站上可能的 XSS 攻击。

编辑:您没有提到您在服务器端使用哪种技术来设置 cookie。如果您使用的是 PHP,此链接列出了设置 HttpOnly 标志的可能方式:

https://www.owasp.org/index.php/HttpOnly#Using_PHP_to_set_HttpOnly

【讨论】:

    【解决方案2】:

    更新:我的原始答案错了(见下文)... 路径树下方的页面可以读取上层 cookie,因此路径不必完全匹配。留下我原来的答案,以防其他人犯同样的错误。我的问题是由我从 javascript 设置 cookie,然后尝试修改 cookie 服务器端引起的。路径为“/”的服务器目标 cookie,因此路径为“/mypages”的 cookie 没有更改。

    $.cookie 只能读取当前文档路径下的cookies,所以如果你的页面是>mysite.com/mypages/mypage.aspx,服务器在设置cookie时会将路径设置为“/”,>但是$ .cookie 将尝试从路径“/mypages”读取并且无法读取 cookie。我自己也遇到了这个问题。如果您没有这样的不同路径,那么这可能 > 不是您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多