我正在设置一个gdpr cookie策略框。如果设置了Cookie,则该框不应再次出现。
我设置cookie如下:
<button type="button" onclick="setCookie('cookiePolicy', '1')"> Accept </button>
然后我用这个脚本展示cookie框:
$(window).on('load', function() {
var cookieBox = document.cookie.indexOf('cookiePolicy');
if (cookieBox == -1)
$('#cookieBox').modal('show');
}
这在我的www.example.com webapp的登录页面中按照预期工作asp.net,但是在从另一个控制器而不是默认控制器调用视图后,cookie框将再次出现。在chrome的devtools中也看不到这个cookie。
在本例中,cookie的路径是“/”,而如果我接受新控制器上的cookie框,则该示例的路径将是Test-Controller中的“/Test”。
有没有办法:将cookie写入可访问的域范围,还是读取cookie域范围?
这是为了在asp.netrazor视图的www.example.com核心中工作。cshtml
先谢谢你了。
**编辑:**接受的答案具有预期的效果,但需要注意的是,这似乎也是默认行为。实际的问题是,cookie的路径是自动分配的,因为它没有被设置在首位:
document.cookie = cName + "=" + cValue + ";"
明确地添加路径停止了任何不稳定的行为,并且使cookie在域范围内可见,即使不存在“/”。
document.cookie = cName + "=" + cValue + ";" + ";path=/";
适用于:
- 本地主机:端口
- localhost:port/
- localhost:port/Controller/Command
从域中的任何位置设置时localhost:port
1条答案
按热度按时间g6ll5ycj1#
您可以在检查cookie时通过添加domain属性来读取域范围的cookie
别忘了将“azerty.com“替换为您的实际域名