Winkel-4 Http-Post-Antwort im Objekt

Ich bin mit Winkel-4 in Kombination mit einem Asp.net web-api. Ich weiß nicht, wie lese ich die Eigenschaften meiner reagieren.

Meine Antwort Aussehen mag diesesWinkel-4 Http-Post-Antwort im Objekt

Meine post-Anfrage:

  postLogin(values: string): Observable<string> {
    let body = "[email protected]&password=Test1234!&grant_type=password";
    /*let body = values + "&grant_type=password";*/
    let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});
    let options = new RequestOptions({headers: headers});

    return this._http.post(this._postLoginUrl, body, options)
      .catch(this.handleError);
  }

Und meinen eigentlich Aufruf der post-Methode:

this._loginService.postLogin(value)
        .subscribe(
          data => console.log(data),
          err => console.log(err));

Und das funktioniert, ich bekomme die Antwort in meine KonsoleWinkel-4 Http-Post-Antwort im Objekt

Aber wie kann ich Lesen Sie meine Eigenschaften?

UPDATE

Ich habe aktualisiert mein code ein bisschen, aber es funktioniert immer noch nicht wie ich will, ich hab die Dokumentation gelesen aber ich konnte immer noch nicht weiter kommen.

Meiner neuen Aufruf der post-Methode:

console.log("username=" + this.username + "&password=" + this.password);
  this._loginService.postLogin("username=" + this.username + "&password=" + this.password)
    .subscribe(
      user => this.user = user),
      err => console.log(err);

Und meine neue post-Anforderung:

  postLogin(values: string): Observable<User> {
    let body = values + "&grant_type=password";
    let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});
    let options = new RequestOptions({headers: headers});

    return this._http.post(this._postLoginUrl, body, options)
      .map(this.extractData)
      .catch(this.handleError);
  }

Mit extractData Funktion

  private extractData(res: Response) {
    let body = res.json();
    return body.fields || {};
  }

Wenn ich eine Konsole von mein user-Objekt nun bekomme ich nicht und wenn ich versuchen, auf eine Eigenschaft des Benutzers, mein browser startet erfrischend. Was mache ich falsch, warum kann ich nicht auf meine Daten zugreifen?

  • Bitte Lesen Sie die Dokumentation.
  • Wie gesagt, lies die Dokumentation... Hier ist Ihre Antwort: Winkel.io/docs/ts/latest/guide/...,:) Aber ich empfehle um das ganze zu Lesen 😉
  • Lesen Sie die Dokumentation, wie gesagt! Unabhängig von der post-Methode müssen Sie zum Parsen der JSON-Antwort. Tun Sie es hier auf den Rückgabewert in Ihrem service return this._http.post(this._postLoginUrl, body, options).map(res => res.json())
  • Wie @joh04667 gesagt, müssen Sie deserialisiert verwenden .json () - Methode auf Antwort
  • Aktualisierte Frage, noch Probleme.
  • Ich glaube nicht, dass body.fields definiert werden... basierend auf deiner Konsole vor, Ihr Schlüssel Optionen sind access_token etc... try console.log(Körper) nach dem Deserialisieren.
  • Wenn Sie möchten, dass die Liste der Schlüssel, die in den JSON, versuchen Object.keys(body). Es ist überhaupt nicht klar, was Sie erwartet .fields werden.
  • Könnten Sie ein typisierte Antworten:

InformationsquelleAutor stef morren | 2017-05-17
Schreibe einen Kommentar