提问者:小点点

.Net Core ValidateAntiForgeryToken 抛出 Web API 400 错误


Visual Studio 2017 with Web Api using .net Core 1.1 我正在使用,但我收到 400 错误请求错误。

错误以各种方式发生:

  1. Angular http
  2. 琴师
  3. 邮差
  4. 肥皂用户界面
  5. 斯瓦格

ASP.NET 开机自检请求上的 Web API“400 错误请求”

[HttpPut]
//[ValidateAntiForgeryToken]
public IActionResult Put([FromBody]VeteranInteraction sessionTracker)
{ //.... } 

为什么会这样?

验证反伪造令牌是问题所在,如果我将其注释掉,它可以工作。


共2个答案

匿名用户

您必须在每次请求时发送防伪令牌

 var arr = { City: 'Tehran', Age: 25 };
    $.ajax({
        url: "@Url.Action("SaveAccess", "Access")",
        type: 'POST',
        data: JSON.stringify(arr),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        async: false,
        beforeSend: function (request) {
            request.setRequestHeader("RequestVerificationToken", $("[name='__RequestVerificationToken']").val());
        },
        success: function (msg) {
            alert(msg);
        }
    });

匿名用户

您需要在验证为 cookie 或 http 标头的每个请求上发送防伪令牌。

请参阅此处的文档。他们有一个关于如何配置角度js的部分。