gpt4 book ai didi

javascript - ASP.NET Core CookieConsent 设置未定义

转载 作者:行者123 更新时间:2023-11-29 15:55:25 25 4
gpt4 key购买 nike

我正在使用内置的 ASP.NET Core CookieConsent 功能,无需修改:

public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

使用客户端 JavaScript:

 <script>
(function () {
document.querySelector("#cookieConsent button[data-cookie-string]").addEventListener("click", function (el) {
document.cookie = el.target.dataset.cookieString;
document.querySelector("#cookieConsent").classList.add("hidden");
}, false);
})();
</script>

当部署到生产环境时,行为随机:有时 cookie 获得正确的名称,有时 cookie 获得未定义。经过一些调查,data-cookie-string=".AspNet.Consent=yes;expires=Sat, 10 Oct 2020 09:56:49 GMT; path=/; secure; samesite=lax">始终相同(更改日期除外),问题似乎与 document.cookie 命令有关。

浏览器(Google Chrome 最新版本)存储空名称和未定义值的 cookie。

有人经历过这样的行为吗?谢谢

最佳答案

expires= 日期格式似乎有问题。本次测试解决了问题:

<script>
(function () {
document.querySelector("#cookieConsent button[data-cookie-string]").addEventListener("click", function (el) {

var now = new Date();
var expires = (new Date(now.getFullYear() + 1, 12, 31).toUTCString());

document.cookie = '.AspNet.Consent=yes;expires=' + expires + ';path=/;';
document.querySelector("#cookieConsent").classList.add("hidden");
}, false);
})();
</script>

关于javascript - ASP.NET Core CookieConsent 设置未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58338842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com