私はHTTP POSTを作成し、応答が失敗したかどうかを確認しようとしています。PromiseオブジェクトをAngular 2のJSONに変換してください。
HTTP呼び出しは次のようになります。
doLogin(credentials) {
var header = new Headers();
header.append('Content-Type', 'application/x-www-form-urlencoded');
var body = 'username=' + credentials.username + '&password=' + credentials.password;
return new Promise((resolve, reject) => {
this.http.post(this.url, body, {
headers: header
})
.subscribe(
data => {
resolve(data.json());
},
error => {
resolve(error.json());
}
);
});
}
そして、この関数の呼び出しは以下の通りです:クロームコンソールで
data: Object;
errorMessage: Object;
login($event, username, password) {
this.credentials = {
username: username,
password: password
};
this._loginService.doLogin(this.credentials).then(
result => {
this.data = result;
console.log(this.data);
},
error => {
this.errorMessage = <any>error;
console.log(this.errorMessage);
});
}
を、データは以下の通りです:
Object {status: "Login success", token: "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjcmlzdGkiLCJ1c2VyS…blf1AzZ6KzRWQFNGXCrIeUHRG3Wrk7ZfCou135WmbVa15iYTA"}
角度2でステータスにアクセスするにはどうすればよいですか? this.data.status
にアクセスしようとしていると、機能しません。
ステータスとトークンのプロパティを持つクラスを作成する必要がありますか?
*ここで*あなたは 'this.data.status'にアクセスしようとしていますか?コールバックの中に? *「非同期」*が意味すること、またはなぜコールバックを購読して提供する必要があるのかを知っていますか? – jonrsharpe
以下を試すことができますか? 'result =>'を '(result:any)=>'に変更してください。その後、 'console.log(this.data.status);' –
何がうまくいかないのですか?エラーメッセージはありますか?あなたはクラスを必要としないインターフェースを作成することができます。 –