Я написал службу аутентификации для аутентификации имени пользователя и пароля на странице входа. Код ниже - это сервис.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 с теми же параметрами в браузере требуется всего две или три секунды.
Любая идея о том, как исправить это?
Вы пытались установить заголовки. также вы не устанавливаете улов для каких-либо ошибок. –
Я бы рекомендовал вам использовать 'POST' для входа в систему, таким образом, пароль не отображается в URL-адресе, и вы все равно можете получить возвращаемое значение. Теперь ваша проблема. Можете ли вы проверить инструменты разработчика Chrome, если ваш запрос «GET» действительно отправлен и какой ответ? – Ivaro18
Спасибо за ваши комментарии. Я обнаружил, что вызов занимает много времени, когда api называется в первый раз. Он работает нормально в последующих вызовах. Что касается нулевого ответа, я обнаружил, что мне нужно настроить заголовки в ответе API до отправки ответа. Теперь я получаю значения из API. –