我想验证。控制器不想接收数据。吃删除ValidateAntiForgeryToken,然后接受null。
在视图Html.AntiForgeryToken()中。这是我的代码:
getDataTable = async(e)= …
由于您使用发送数据 FormData 该 Content-Type 你的要求应该是 application/form-data 。但正如您在浏览器网络选项卡中看到的那样,实际数据值之间存在一些奇怪的值
FormData
Content-Type
application/form-data
-----WebKitFormBoundarySomeValue
这是一个 boundary 分隔您的数据条目。而实际价值 Content-Type 标题应该是 application/form-data; boundary=-----WebKitFormBoundarySomeValue 。由于此值是由浏览器随机生成的,因此无法手动设置,您应该省略 Content-Type 标题,broswer将为您设置它。
boundary
application/form-data; boundary=-----WebKitFormBoundarySomeValue
headers: { "Accept": "application/json, application/xml, text/plain, text/html, *.*" //no content-type }
在您的控制器代码中使用 [FromForm] 属性以将请求数据作为表单数据读取。你应该放弃使用 Consumes 在这种情况下属性,因为您无法指定正确 Content-Type 值因为它在请求之间变化。
[FromForm]
Consumes
[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<IActionResult> Login([FromForm]LoginModel model)