Ich habe Probleme mit dem AntiForgeryToken mit Ajax. Ich verwende ASP.NET MVC 3. Ich habe die Lösung in jQuery Ajax-Aufrufen und im Html.AntiForgeryToken () ausprobiert . Mit dieser Lösung wird das Token jetzt übergeben:
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) {
...
}
});
Wenn ich das [ValidateAntiForgeryToken]
Attribut entferne , um zu sehen, ob die Daten (mit dem Token) als Parameter an die Steuerung übergeben werden, kann ich sehen, dass sie übergeben werden. Aber aus irgendeinem Grund wird die A required anti-forgery token was not supplied or was invalid.
Nachricht immer noch angezeigt, wenn ich das Attribut zurücksetze.
Irgendwelche Ideen?
BEARBEITEN
Das Antiforgerytoken wird in einem Formular generiert, aber ich verwende keine Übermittlungsaktion, um es abzusenden. Stattdessen erhalte ich nur den Wert des Tokens mit jquery und versuche dann, ihn zu posten.
Hier ist das Formular, das das Token enthält und sich auf der oberen Masterseite befindet:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>