将FormData对象POST到Razor页面



我的应用程序中有一个简单的jQuery$.post问题。我在互联网上尝试了很多方法和解决方案,但都无济于事。当发送后请求时,我看到400错误

public class RecoveryAdhocInvoicingModel : PageModel
{                                                                                  
Public IActionResult OnPostDoJob(string invNo, string account)
{
//var emailAddress = Request.Form["emailaddress"];
// do something with emailAddress
return new JsonResult("");
}                                                                                   
}

在我的脚本中,$.post方法是通过点击按钮调用的:

$('#submitBtnUpdateJob').click(function (evt) {
var formdata = new FormData();
formdata.append("invNo", $('#adhocInvoiceNumber').val());
formdata.append("account", $('#invoiceAccountInput').val());
$.post(window.location.href + '?handler=DoJob', JSON.stringify(formdata), function () {
alert('Posted');
});                                                                                   
});

解决方案文件夹路径

您需要将RequestVerificationToken标头添加到请求中。

$.ajax({
type: "POST",
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
url: window.location.href + '?handler=DoJob',
data: {
"invNo": $('#adhocInvoiceNumber').val(),
"account": $('#invoiceAccountInput').val()
},
contentType: "application/x-www-form-urlencoded"
}).done(function (response) {
alert('Posted');
});

文件:https://www.learnrazorpages.com/security/request-verification#ajax-post请求和json

相关内容

  • 没有找到相关文章

最新更新