douzhuan4406 2017-10-25 18:16
浏览 95

Ionic 2使用电话号码登录

I am doing ionic 2 login using phone number and password. I am using Laravel 5.3 passport as backend. As login is functioned using postman. but in ionic 2 it gives me error as -

Unexpected token < in JSON at position 0 at JSON.parse () at Response.Body.json (http.es5.js:800) at SafeSubscriber._next (register-api.ts:33)
my code is given below-

loginData = { contact:'', password:'' };

login.ts code 

doLogin() {
this.showLoader();   
this.registerApi.login(this.loginData).then((result) => {
  this.loading.dismiss();
  this.data = result; 
   this.viewCtrl.dismiss().then(
        (result) => this.app.getRootNav().setRoot(MyApp)
    )  
  window.location.reload(); 
  }, (err) => {
  this.loading.dismiss();
  this.presentToast(err);
});   }

registerapi.ts code

login(credentials) {
return new Promise((resolve, reject) => {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    this.http.post(apiUrl+'login', JSON.stringify(credentials), {headers: headers})
      .subscribe(res => {
        resolve(res.json()); 

      }, (err) => {
        reject(err);   
      });
});  }

I am really stuck here.. Thank You.

MY php laravel code is as -

  public function login(){
    if(Auth::attempt(['contact' => request('contact'), 'password' => request('password')])){
        $user = Auth::user();
        $success['token'] =  $user->createToken('MyApp')->accessToken;
         $success['fname'] =  $user->fname;
      $success['lname'] =  $user->lname;
       $success['contact'] =  $user->contact;           
       $success['id'] =  $user->id;
        return response()->json(['success' => $success], $this->successStatus);
    }
    else{
        return response()->json(['error'=>'Unauthorised'], 401);
    }
}
  • 写回答

1条回答 默认 最新

  • doujiu7704 2017-10-25 20:01
    关注

    < in JSON at position 0 Means that most probably you are getting HTML body from the server, due to wrong link apiUrl (maybe instead of apiUrl +'login' should be apiUrl +'/login') or there is an php error, try following code to see the exact response in the console:

    login(credentials) {
    return new Promise((resolve, reject) => {
        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        this.http.post(apiUrl+'login', JSON.stringify(credentials), {headers: headers})
          .subscribe(res => {
               console.log(res.text()); 
    
          }, (err) => {
            reject(err);   
          });
    });  }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图