私のSPA Webサイトでは、偽造防止トークンを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.
この問題を解決するにはどうすればよいですか?