代码之家  ›  专栏  ›  技术社区  ›  user8545750

.Net Core ValidateAntiForgeryToken引发web api 400错误

  •  12
  • user8545750  · 技术社区  · 7 年前

    Visual Studio 2017,使用Web Api。我正在使用net Core 1.1,但我收到了一个400错误的请求错误。

    1. 角度http
    2. 小提琴手
    3. SoapUI

    ASP。NET Web API 400错误的POST请求

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

    为什么会这样?

    ValidateAntiForgeryToken 问题是,如果我把它评论出来,它就行了。

    2 回复  |  直到 7 年前
        1
  •  6
  •   Amir Reza    6 年前

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

     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);
            }
        });
    
        2
  •  2
  •   galdin    7 年前

    您需要在每个请求上发送AntiForgery令牌,将其验证为cookie或http头。

    请参阅 documentation here section 关于如何配置angular js。