У меня возникают проблемы с AntiForgeryToken с помощью ajax. Я использую ASP.NET MVC 3. Я попробовал решение в jQuery Ajax-вызовах и 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.
все еще появляется, когда я возвращаю атрибут.
Любые идеи?
ИЗМЕНИТЬ
Внутри формы генерируется antiforgerytoken, но я не использую действие отправки, чтобы отправить его. Вместо этого, я просто получаю значение токена, используя jquery, а затем пытаюсь выполнить ajax post.
Вот форма, содержащая токен, и расположена на главной главной странице:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>