У меня есть эта функция jquery, и я хочу передать токен защиты от подделки контроллеру для проверки. Однако мой текущий метод возвращает ошибку 400 независимо от того, пропущу ли я ее через заголовок или тело.
Я положил эту пустую форму в верхней части моей страницы
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "form" }))
{
@Html.AntiForgeryToken()
}
Это функция jquery. У меня есть запрос подтверждения в заголовке и теле, но он не работает.
$("#eventGenerateButton").on("click", function (e) {
e.preventDefault();
var event_form_data = {
"__RequestVerificationToken": token,
"StartDate": $("#eventStartDate").val(),
"EndDate": $("#eventEndDate").val(),
};
$.ajax({
url: "@Url.Action("GenerateEventLogsReport", @ViewContext.RouteData.Values["controller"].ToString())",
method: "POST",
headers: { "__RequestVerificationToken": token},
xhrFields: {
responseType: 'blob'
},
data: JSON.stringify(event_form_data),
contentType: "application/json",
success: function (result) {
GenerateReport(result,"EventLogs");
},
error: function (error) {
console.log(error);
}
});
return false;
});
Это контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public FileResult GenerateEventLogsReport([FromBody]GenericReportDateViewModel Input)
{
}