У меня проблемы с 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.
Вот форма, которая содержит токен и находится на верхней главной странице:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>