Angular 2和C#API - 未处理的Promise拒绝:ReferenceError:_body未定义

时间:2016-09-19 09:16:34

标签: javascript c# angularjs angular typescript

我有一个用C#编写的工作API,返回类似这样的内容:

        status: 200, 
        ok: true, 
        statusText: "OK", 
        url: "http://localhost:53619/api/EventList/All"
        _body: "[
            {
            "id":"6eb057be-1c27-4d92-83cc-95216dc1b21b",
            "user":{"id":"mail@mail.org",
            "firstname":"name",
            "lastname":"lastname",
            "email":"mail@mail.com",
            "avatar_url":"string"},
            "project":
                {   "id":0,
                    "name":"super project",
                    "description":"woop woop",
                    "created":"2016-09-15T10:09:17.425Z",
                    "autodesk_client_id":"123456",
                    "autodesk_client_secret":"123"},
                    "title":"Jan lagde et super prosjekt",
                    "content":"test",
                    "icon":"string",
                    "type":"string",
                    "properties":"string",
                    "datetime":"2016-09-15T12:16:56.6826078+02:00"}
            ]

这是C#API的默认响应。 HTTP状态代码,网址,消息等。然后有一个变量_body包含我实际需要的json数据。

然后在Angular 2中,我有以下内容来获取数据:

  get(data: User): Promise<Event[]> {

    let body = JSON.stringify(data);
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    return this._http
      .post(this.apiUrl + '/All', body, options)
      .toPromise()
      .then(res => {
        console.log(res);
        return res._body.json();  <--------- ERROR (_body not defined)
      })
      .catch(this.handleError);

  }

这很有效,我得到了所有数据,并在控制台中打印出来。 但Angular拒绝接受Response包含变量_body并崩溃!

我该如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:1)

你应该使用返回res.json()._ body;