J'ai des problèmes avec l'AntiForgeryToken avec ajax. J'utilise ASP.NET MVC 3. J'ai essayé la solution dans Les appels Ajax de jQuery et la fonction 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 retire le [ValidateAntiForgeryToken]
juste pour voir si les données (avec le jeton) sont transmises comme paramètres au contrôleur, je peux voir qu'elles sont transmises. Mais pour une raison quelconque, l'attribut A required anti-forgery token was not supplied or was invalid.
Le message s'affiche toujours lorsque je remets l'attribut.
Des idées ?
EDIT
L'antiforgerytoken est généré dans un formulaire, mais je n'utilise pas d'action de soumission pour le soumettre. Au lieu de cela, j'obtiens simplement la valeur du jeton en utilisant jquery et j'essaie ensuite de l'envoyer par ajax.
Voici le formulaire qui contient le jeton, et qui se trouve en haut de la page principale :
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>