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>