【问题标题】:Check if cookie __RequestVerificationToken is present检查 cookie __RequestVerificationToken 是否存在
【发布时间】:2017-07-27 13:19:11
【问题描述】:

我得到一个著名的 asp mvc 错误:

所需的防伪 cookie“__RequestVerificationToken”不存在。

我只在将我的网站部署到 godaddy 服务器 并且仅在登录页面 上收到此错误。但是,我只需要刷新页面,错误就消失了。

因此,我试图弄清楚如何检查此 cookie 是否存在并运行:

location.reload(true); 

如果cookie不存在,我认为这会解决问题。

所以我尝试使用:

if(!$.cookie('__RequestVerificationToken')){
    location.reload(true);
}

但是cookie 总是undefined 并且上面的代码不断地重新加载页面。

我已经检查了几乎所有与此问题相关的 SO 问题,但似乎找不到答案。

【问题讨论】:

  • cookie 名称通常类似于 __RequestVerificationToken_L0F3ZXNvbWV...,所以您的名称有误

标签: jquery asp.net-mvc


【解决方案1】:

嗯,$.cookie 不是 jQuery 内置的。它需要一个插件。如果您没有那个插件,那将会以undefined 的形式返回,并且测试!undefined 总是正确的。结果,我假设您在某处找到了该代码,假设它是 jQuery 的一部分,并且没有费心包含实际上使其工作的插件。此外,该语法和相关插件已被弃用,取而代之的是 JavaScript Cookie project,因此请使用它而不是旧的 jQuery Cookie 插件。

【讨论】:

  • 我确实在我的登录页面中包含了"~/Scripts/global/jquery.cokie.min.js"
  • 我还通过创建一个测试cookie并检查它是否存在相同的代码来测试它
  • 是直接粘贴吗?您将“cookie”拼写为“cokie”。
  • 是的,我检查了文件是否存在,名称为:jquery.cokie.min.js
  • 所以只需输入文件名
【解决方案2】:

检查您的 Web.config,如果存在请评论以下行

httpOnlyCookies="true" 需要SSL="true"。

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 2012-05-17
    • 2011-08-23
    • 2014-10-15
    • 2012-03-10
    • 2014-12-04
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多