AngularJS无法找到XSRF-TOKEN cookie

时间:2013-03-16 02:05:11

标签: asp.net-mvc http angularjs csrf request-validation

我正在使用带有ASP.NET MVC4 + Web API项目的angular 1.0.4。我试图利用angular的CSRF保护无济于事。我可以看到我正在传递一个名为XSRF-TOKEN的cookie,但是当angular尝试将值添加为响应中名为X-XSRF-TOKEN的头时,该值显示为undefined。我尝试遵循建议here,但HTML尚未呈现,因此找不到任何元素。

我可能会缺少什么? ASP.NET MVC生成的RequestVerificationToken cookie是否受到javascript访问保护?

此外,是否可以让角度懒惰地检索cookie或表单输入值?如果是这样,怎么样?我找不到任何关于如何做到这一点的文档。

1 个答案:

答案 0 :(得分:1)

我无法找到问题的确切答案。我最终创建了一个服务来查找'input [name =“__ RequestVerificationToken”]',获取它的值,并返回一个具有该值的对象。然后我使用该对象在配置中设置标头。这让我可以懒惰地提取并附加值作为页面的标题,该表单不会立即显示在页面上。

在进一步审查后,我还意识到ASP.NET的AntiForgeryToken支持需要cookie和表单输入/标头值进行验证,因此内置的AngularJS支持无论如何都不够。

如果有人有更好的解决方案,我很乐意将答案转移到该解决方案。