我正在尝试在我的WEB API中解决CSRF问题。我正在尝试实施here所示的解决方案。
据我所知,我需要在Razor代码中创建一个@function {...}块,我已经完成了。 (基本上与文章中的功能相同)
PNum
然后我有一个外部.js文件试图通过以下方法调用此方法:
NULL
我的“TokenHeaderValue()”方法永远不会被调用,而且我可以在Fiddler中看到“RequestVerificationToken:@TokenHeaderValue()”的文字字符串是传递的内容,而不是“TokenHeaderValue()”的返回结果。
这里发生了什么?为什么不会发生对“TokenHeaderValue()”的实际调用?
答案 0 :(得分:0)
如果您使用全局变量并在JavaScript中引用它,它应该可以工作。
在你的Razor视图中:
<script>window._csrfToken = '@TokenHeaderValue()';</script>
在你的JS文件中:
$.ajax({
//...
headers: {
'RequestVerificationToken': window._csrfToken
},
//...
});