内容类型为applicationjson的angular post请求无法使用

问题描述 投票:0回答:2

我试着用angular发送post请求,但是当我把content-type设置为applicationjson时,请求内容类型总是没有设置,而且HTTP方法总是被删除,所有发布的数据也被从请求体中删除,以下是我的代码。

enter image description here

而我的要求是

enter image description here

angular asp.net-core angular8 angular-httpclient angular-http
2个回答
0
投票

HTTP方法总是被删除,所有发布的数据从请求主体中删除

在你分享的截图中,我们可以发现,你捕捉到的请求是一个 OPTIONS 请求(飞行前请求),而不是实际的 POST 请求。所以你发的数据不在请求体中。

另外,下面的代码片段在我这边很好用,你可以参考一下。

var student = {'name' : 'testuser', 'age' : 29};

const headers = new HttpHeaders().set('Content-Type','application/json');

this.http.post<Student>('https://xxxx/student',JSON.stringify(student),{headers:headers})
.subscribe(data => {
  console.log(data);
});

控制器和动作

[Route("[controller]")]
[ApiController]
public class StudentController : ControllerBase
{
    [HttpPost]
    public IActionResult Post(Student student)
    {
        return Ok(student);
    }
}

测试结果

enter image description here


0
投票

如果你这样设置Accept headers,就足够了。

 const headers = new HttpHeaders()
      .set('Accept', 'application/json');

不需要设置内容头。

© www.soinside.com 2019 - 2024. All rights reserved.