ログインページでユーザー名とパスワードを認証するための認証サービスを作成しました。以下のコードはサービスです。Ionic2 - http getが機能していない
public login(credentials) {
if (credentials.username === null || credentials.password === null) {
return Observable.throw("Please insert credentials");
} else {
let apiURL = 'http://localhost/timeclock/api/login?usercode=' + credentials.username +
'&password=' + credentials.password ;
return Observable.create(observer => {
this.http.get(apiURL).map(res => res.json()).subscribe(data => {
if (data.success === 'true')
{
this.currentUser.name = data.data.user_name;
this.currentUser.email = data.data.user_email;
observer.next(true);
observer.complete();
} else {
observer.next(false);
observer.complete();
}
});
});
}
}
ユーザー名とパスワードが送信されると、正しいパラメータでURLが正しく呼び出されます。
httpコールには非常に時間がかかります。また、応答は返されません。
ブラウザで同じパラメータでURLを呼び出すと、応答を取得するのにわずか2〜3秒かかります。
これを修正する方法はありますか?
あなたはヘッダーの設定を試しましたか。また、エラーのキャッチを設定していません。 –
ログインに 'POST'を使用することをお勧めします。この方法では、パスワードがURLにはっきりと見えず、戻り値を引き出すことができます。今、あなたの問題。あなたの 'GET'リクエストが実際に送信され、そのレスポンスが何であるかをクローム開発者ツールで確認できますか? – Ivaro18
ご意見ありがとうございます。私はapiが最初に呼び出されたときに呼び出しに時間がかかることを発見しました。後続の呼び出しで正常に動作します。 nullレスポンスに関しては、レスポンスを送信する前にAPIレスポンスにヘッダを設定する必要があることがわかりました。今、私はAPIから値を受け取りました。 –