微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Asp.Net Core Unobtrusive Ajax 在实时服务器上抛出 400 错误

如何解决Asp.Net Core Unobtrusive Ajax 在实时服务器上抛出 400 错误

我的每一个表单都是类型

 <form id="addform" asp-area="Admin" asp-controller="Departments" asp-action="Add" data-ajax="true" data-ajax-method="post" data-ajax-success="onSuccess" data-ajax-failure="onFailure" data-ajax-begin="onBegin">
</form>

我还在每个 ajaxSend 请求上附加了 RequestVerificationToken

$(document).ajaxSend(function (e,xhr,options) {
    debugger;
    if (options.type.toupperCase() == "POST") {
        var token = $("input[name='__RequestVerificationToken']").val();
        xhr.setRequestHeader("__RequestVerificationToken",token);
    }
});

我的控制器是这样的

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Add(Departmentviewmodel departmentviewmodel)
{
     return View();
}

现在,它在本地工作正常,但在实时服务器上无法正常工作。 一些请求工作正常,但在几次请求后返回 400 错误请求错误

我尝试了很多东西,但都是徒劳的。我需要这种安全性,否则我会跳过相同的

解决方法

标题名称应为 RequestVerificationToken,不带前导下划线。如果您将其作为表单值发布,则带下划线的版本是您应该使用的名称。您可以将其配置为其他内容:

https://www.learnrazorpages.com/security/request-verification#configuration

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。