做一个项目遇到了两次415的错误,第一次解决了但是没引起重视,到了第二次却忘了怎么解决的,又不得不化很多时间重新查资料,试错。
我两次都是post请求报415错,网上很多都说要改Content-Type,改为application/json,试了一下,错误为400了,查了资料,猜测应该是跨域出现了问题,
application/json跨域会发送两次请求,一次请求OPTIONS,第二次才请求数据。因此跨域我用的Content-Type : application/x-www-form-urlencoded;charset=utf-8,然而如果该ContentType不行那应该改什么呢,我把这次写的API接口和以前的一比,好家伙,
[HttpPost]
public IActionResult Login([FromForm]UserDto u)
{
AjaxResponse ajax = _userservice.VarifyUser(u);
return Ok(ajax);
[HttpPost]
public IActionResult GetTitle ([FromBody]BlogTilePageDto pageDto)
{
return Ok(homeService.GetBlogTitles(pageDto));
}
就是你了,FromBody和FromForm,记得我以前也写过的,现在既开心又难受。
顾名思义,从两者名字可以看出,FromBody的参数应该是以Json的形式传递,FromForm的参数应该是以表单的方式传递,而我上面Content-Type写的就是x-www-form这不就是表单方式吗,因此需要把FromBody改为FromForm