Estou tendo problemas com o AntiForgeryToken com ajax. Estou usando o ASP.NET MVC 3. Tentei a solução nas chamadas do jQuery Ajax e no Html.AntiForgeryToken () . Usando essa solução, o token agora está sendo passado:
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 removo o [ValidateAntiForgeryToken]
atributo apenas para ver se os dados (com o token) estão sendo passados como parâmetros para o controlador, posso ver que eles estão sendo passados. Mas, por algum motivo, a A required anti-forgery token was not supplied or was invalid.
mensagem ainda aparece quando eu coloco o atributo de volta.
Alguma ideia?
EDITAR
O token antiforgery está sendo gerado dentro de um formulário, mas não estou usando uma ação de envio para enviá-lo. Em vez disso, estou apenas obtendo o valor do token usando jquery e depois tentando postá-lo no ajax.
Aqui está o formulário que contém o token e está localizado na página principal do topo:
<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()
</form>