Ionic2 - http get无效

时间:2017-01-12 12:59:54

标签: ionic-framework 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时,只需两到三秒钟即可获得响应。

有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:0)

你不需要像这样重构一个新的Observable。

public login(credentials) : Observable<boolean> {
  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 this.http.get(apiURL).map(res => res.json())
      .map(data => 
      {
        if(data.success){
          this.currentUser.name  = data.data.user_name;
          this.currentUser.email = data.data.user_email;
          return true;
        }else{
          return false;
        }
      });
  }
}