У мене проблеми з AntiForgeryToken з аяксом. Я використовую 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.
повідомлення все-таки спливає, коли я повертаю атрибут назад.
Будь-які ідеї?
EDIT
Антифоргектотекен генерується у формі, але я не використовую для надсилання дії. Натомість я просто отримую значення маркера за допомогою jquery, а потім намагаюся надіслати повідомлення в Ajax.
Ось форма, що містить маркер і розташована у верхній головній сторінці:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>