В интернете действительно много информации по этой проблеме, но мне ничего не помогло.
Это мой клиентский код:
var token = $('form[action="/Storage/AddReceipt"] input[name="__RequestVerificationToken"]').val();
var addAntiForgeryToken = function(data) {
data.__RequestVerificationToken = token;
return data;
};
var success = function (result) {
alert(result.success);
};
$.ajax({
url: '@Url.Action("AddReceipt", "Storage")',
type: 'POST',
contentType: 'application/json',
data: addAntiForgeryToken({ Number: 1, BatchDate: '24/03/2015' }),
success: success,
error: function (xhr, textStatus, errorThrown) {
alert(errorThrown);
}
});
и контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddReceipt(...) {...}
и ответ сервера на мой запрос -
Отсутствует обязательное поле формы защиты от подделки __RequestVerificationToken.
но правильный токен отправляется:
return JSON.stringify(data);
а также
$.ajax({
...
data: $('form[action="/Storage/AddReceipt"]').serialize(),
...
}
тоже не помогает.