Sto riscontrando problemi con AntiForgeryToken con ajax. Sto usando ASP.NET MVC 3. Ho provato la soluzione nelle chiamate jQuery Ajax e Html.AntiForgeryToken () . Utilizzando quella soluzione, il token è ora passato:
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) {
...
}
});
Quando rimuovo l' [ValidateAntiForgeryToken]
attributo solo per vedere se i dati (con il token) vengono passati come parametri al controller, posso vedere che vengono passati. Ma per qualche motivo, il A required anti-forgery token was not supplied or was invalid.
messaggio appare ancora quando rimetto l'attributo.
Qualche idea?
MODIFICARE
L'antiforgerytoken viene generato all'interno di un modulo, ma non sto usando un'azione di invio per inviarlo. Invece, sto solo ottenendo il valore del token usando jquery e quindi provando a postarlo ajax.
Ecco il modulo che contiene il token e si trova nella pagina principale superiore:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>