Visual Studio 2017 with Web Api using .net Core 1.1 我正在使用,但我收到 400 错误请求错误。
错误以各种方式发生:
ASP.NET 开机自检请求上的 Web API“400 错误请求”
[HttpPut]
//[ValidateAntiForgeryToken]
public IActionResult Put([FromBody]VeteranInteraction sessionTracker)
{ //.... }
为什么会这样?
验证反伪造令牌
是问题所在,如果我将其注释掉,它可以工作。
您必须在每次请求时发送防伪令牌
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的部分。