Saya mengalami masalah dengan AntiForgeryToken dengan ajax. Saya menggunakan ASP.NET MVC 3. Saya mencoba solusi di panggilan jQuery Ajax dan Html.AntiForgeryToken () . Menggunakan solusi itu, token sekarang sedang diteruskan:
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) {
...
}
});
Ketika saya menghapus [ValidateAntiForgeryToken]
atribut hanya untuk melihat apakah data (dengan token) dilewatkan sebagai parameter ke controller, saya bisa melihat bahwa mereka sedang dilewatkan. Tetapi untuk beberapa alasan, A required anti-forgery token was not supplied or was invalid.
pesan itu masih muncul ketika saya mengembalikan atribut.
Ada ide?
EDIT
Antiforgerytoken sedang dibuat di dalam formulir, tapi saya tidak menggunakan tindakan kirim untuk mengirimkannya. Sebagai gantinya, saya hanya mendapatkan nilai token menggunakan jquery dan kemudian mencoba untuk posting ajax itu.
Ini adalah formulir yang berisi token, dan terletak di halaman utama master:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>