Mam problem z AntiForgeryTokenem z ajaxem. Korzystam z ASP.NET MVC 3. Próbowałem rozwiązania w wywołaniach jQuery Ajax i Html.AntiForgeryToken () . Korzystając z tego rozwiązania, token jest teraz przekazywany:
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) {
...
}
});
Kiedy usuwam [ValidateAntiForgeryToken]
atrybut, aby sprawdzić, czy dane (z tokenem) są przekazywane jako parametry do kontrolera, widzę, że są przekazywane. Ale z jakiegoś powodu A required anti-forgery token was not supplied or was invalid.
komunikat nadal pojawia się, gdy przywracam atrybut.
Jakieś pomysły?
EDYTOWAĆ
W formularzu generowany jest żeton przeciw fałszerstwu, ale nie używam akcji przesyłania, aby go przesłać. Zamiast tego po prostu pobieram wartość tokena za pomocą jquery, a następnie próbuję opublikować to ajax.
Oto formularz, który zawiera token i znajduje się na górnej stronie wzorcowej:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>