AJAX POST на странице ASP.NET Core Razor не будет работать. Он всегда возвращает 400 плохих запросов.
У меня есть следующий код метода страницы:
[ValidateAntiForgeryToken]
public async Task<IActionResult> OnPostProcessCCPaymentAsync(CheckInPaymentModel checkInPaymentModel)
{
return new JsonResult(checkInPaymentModel.AmountExtra);
}
На странице установлено следующее:
@Html.AntiForgeryToken()
И следующий вызов JS AJAX:
$.ajax({
type: "POST",
url: "/CheckIn/Payment?handler=ProcessCCPayment",
contentType: "application/json",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: JSON.stringify({
// Those property names must match the property names of your PromotionDecision view model
Donate: true
}),
success: function (response) {
$(".paymentDetails .loading").addClass("loader").removeClass("loading");
},
failure: function (response) {
$(".paymentDetails .loading").addClass("loader").removeClass("loading");
}
});
Если тип Ajax изменен на GET, а метод изменен на OnGetProcessCCPaymentAsync, он корректно отправляется на сервер.
Однако AJAX POST в Core Razor всегда завершается неудачно с 400 ошибочными запросами.
Я выполняю отладку непосредственно из Visual Studio, поэтому URL-адрес - http://localhost: 62632/CheckIn/Payment, поэтому я не знаю, как найти журналы, чтобы узнать, какая ошибка возникает, когда экземпляр отладки получает запрос.
Любые идеи или советы будут с благодарностью.