ajaxでAntiForgeryTokenに問題があります。ASP.NET MVC 3を使用しています。jQueryAjax呼び出しとHtml.AntiForgeryToken()でソリューションを試しました。そのソリューションを使用して、トークンは現在渡されています:
var data = { ... } // with token, key is '__RequestVerificationToken'
$.ajax({
type: "POST",
data: data,
datatype: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
url: myURL,
success: function (response) {
...
},
error: function (response) {
...
}
});
[ValidateAntiForgeryToken]
データ(トークンを含む)がパラメーターとしてコントローラーに渡されているかどうかを確認するためだけに属性を削除すると、それらが渡されていることがわかります。しかし、何らかの理由で、A required anti-forgery token was not supplied or was invalid.
属性を元に戻すとメッセージがポップアップ表示されます。
何か案は?
編集
偽造防止トークンはフォーム内で生成されていますが、送信アクションを使用して送信していません。代わりに、jqueryを使用してトークンの値を取得し、それをajax投稿しようとしています。
トークンを含み、トップマスターページにあるフォームは次のとおりです。
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>