在我的 SPA 网站中,我需要通过 ajax 将防伪令牌发送到服务器。我使用这篇文章的方法:
所以在我的 layout.cshtml 我有本地功能:
<script>
@functions{
public string TokenHeaderValue()
{
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
return cookieToken + ":" + formToken;
}
}
</script>
我有一个名为 register.js 的单独 js 文件,我在 ajax 中调用这个函数:
$.ajax({
url: 'User/JsonRegister',
type: "POST",
data: d,
headers: {
'RequestVerificationToken': '@TokenHeaderValue()'
},
success: function (result) {
},
error: function (result) {
}
});
问题是我从来没有调用过@TokenHeaderValue() 并且我一直收到这个错误:
The required anti-forgery form field "__RequestVerificationToken" is not present.
我该如何解决这个问题?