gpt4 book ai didi

ajax - ASP.NET Core Razor - AJAX Post - 400 错误请求

转载 作者:行者123 更新时间:2023-12-02 03:20:35 26 4
gpt4 key购买 nike

ASP.NET Core Razor 页面中的 AJAX POST 将不起作用。它总是返回 400 Bad Request。

我有以下页面方法代码:

[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,则它会正确发送到服务器。

但是,Core Razor 中的 AJAX POST 总是失败,并显示 400 错误请求。

我直接从 Visual Studio 进行调试,因此 URL 为 http://localhost:62632/CheckIn/Payment所以我不知道如何定位日志来查看调试实例接收请求时发生了什么错误。

任何想法或建议将不胜感激。

最佳答案

为了避免阅读上面的修订和评论(这让我摸不着头脑),解决方案是更改:

xhr.setRequestHeader("XSRF-TOKEN",

致:

xhr.setRequestHeader("RequestVerificationToken",

答案就在修订版中,有人将其删除。评论中也简要提到了这一点。我当然不会接受任何功劳,只是想尽量减少将来遇到这种疯狂错误的其他人的困惑。

关于ajax - ASP.NET Core Razor - AJAX Post - 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50064246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com