Angular2-在http.post请求主体中发送对象

时间:2019-06-26 08:15:25

标签: arrays angular http object

我正在Angular2 Web项目上工作,在ts类中我有一个对象:

  Object: any=  {
      "first":null,
      "second":null,
      "third": null,
  }

我想在http.post请求正文中发送对象。我尝试了下一个代码,但是不起作用;

     method() {
       const url='/pathname/';
       return this.http.post(url, this.Object).pipe(map((data:any)=>data));
     }

控制台出现错误:

    error :  HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "OK",url: "http://localhost:8080/path", ok: false,..}
    headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
    message: "Http failure response for 
    http://localhost:8080/path 400 OK"
    name: "HttpErrorResponse"
    ok: false
    status: 400
    statusText: "OK"
    url: "http://localhost:8080/path"

您能解释一下如何在请求后的正文中发送打字稿对象吗?预先谢谢你

3 个答案:

答案 0 :(得分:0)

您需要订阅method函数返回的可观察的帖子。就是这样。

this.method().subscribe(
                 res => {
                 // Handle success response here
                 },
                 err => {
                 // Handle error response here
                 }
              );       

答案 1 :(得分:0)

您应该订阅post方法,因为http类的此方法返回一个可观察的值。 您可以将代码重写为:-

 method() {
   const url='/pathname/';
   return this.http.post(url, this.Object).subscribe( resp=> {
               const data = resp; // response you get from serve
          }, error => {
                      console.log(error); //error you get from server 
          });
 }

答案 2 :(得分:-3)

您收到400错误的请求错误,有效负载密钥与中间磨损不匹配。请建议将正确的参数传递给Request对象。