J'ai des problèmes avec l'AntiForgeryToken avec ajax. J'utilise ASP.NET MVC 3. J'ai essayé la solution dans les appels jQuery Ajax et le Html.AntiForgeryToken () . En utilisant cette solution, le jeton est maintenant passé:
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) {
...
}
});
Lorsque je supprime l' [ValidateAntiForgeryToken]
attribut juste pour voir si les données (avec le jeton) sont transmises en tant que paramètres au contrôleur, je peux voir qu'elles sont transmises. Mais pour une raison quelconque, le A required anti-forgery token was not supplied or was invalid.
message apparaît toujours lorsque je remets l'attribut.
Des idées?
ÉDITER
L'antiforgerytoken est généré dans un formulaire, mais je n'utilise pas d'action d'envoi pour le soumettre. Au lieu de cela, j'obtiens simplement la valeur du jeton en utilisant jquery, puis j'essaye d'ajax poster cela.
Voici le formulaire qui contient le jeton et se trouve sur la page maître supérieure:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>