2016-09-19 2 views
0

ich eine Arbeits API in C# geschrieben, die so etwas wie dies zurück:Angular 2 und C# API - Unbehandelte Versprechen Ablehnung: Reference: _body ist nicht definiert

 status: 200, 
     ok: true, 
     statusText: "OK", 
     url: "http://localhost:53619/api/EventList/All" 
     _body: "[ 
      { 
      "id":"6eb057be-1c27-4d92-83cc-95216dc1b21b", 
      "user":{"id":"[email protected]", 
      "firstname":"name", 
      "lastname":"lastname", 
      "email":"[email protected]", 
      "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"} 
      ] 

Dies ist die Standardantwort von der C# API. HTTP-Statuscode, URL, Nachricht usw. Dann gibt es eine Variable _body, die die Json-Daten enthält, die ich tatsächlich brauche.

dann in Angular 2 Ich habe im Anschluss an die die Daten zu erhalten:

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); 

    } 

Dieses gut funktioniert, ich alle Daten erhalten und es wird in der Konsole ausgegeben. Aber Angular verweigern zu akzeptieren, dass die Antwort die Variable _body und crash enthalten!

Wie kann ich das beheben? Danke

Antwort

1

sollten Sie verwenden Rückgabe res.json() ._ Körper;

Verwandte Themen