在Angular 2中自定义POST请求

时间:2016-12-02 10:35:17

标签: javascript json angular post typescript

我正在创建一个POST请求,但我还需要指定"类型链接关系"。因此,正文应该如下所示:

  {
                "_links":{
                    "type":{
                        "href":"http://example.co.uk/rest/type/node/article"
                    }
                },
                "title":[{"value": "Blog title"}],
                "body":[{"value": "Body content"}]
            }

到目前为止,我从用户输入(表单)获取标题和正文,但我不知道如何将此新对象添加到我的请求中。

这是我的服务:

  createBlog(blog: Blog): Observable<any>{
          let url = this.API_URL + "entity/node";
          return this.http.post(url, blog,  {headers:this.headers}).map(res => res.json()).catch(err => {

            return Observable.throw(err);
          });
        }

有了这个,我收到了一个错误的请求

400 Bad bequest
Response {_body: "{"error":"The type link relation must be specified."}", status: 400, ok: false, statusText: "Bad Request", headers: Headers…}

任何提示?

1 个答案:

答案 0 :(得分:1)

你应该像这样扩展Blog对象:

createBlog(blog: Blog): Observable<any>{
  blog._links = {type : { href: 'http://example.co.uk/rest/type/node/article' } };
  ....
}

为此,您需要更改Blog模型以包含Object类型的_link属性。

export class Blog {
    _links: Object;
    title: Array<Object>;
    ...
}