【问题标题】:ionic 2 http request after oauth not workingoauth 后的 ionic 2 http 请求不起作用
【发布时间】:2016-06-06 00:35:21
【问题描述】:

我有一个按钮重定向到这个功能

loginGoogle() {
    this.cordovaOauthG.login().then((success) => {
      console.log("Google Login DONE ");
      if (success != null) {
        console.log(JSON.stringify(success));
        //alert(success.access_token);

        if (success.access_token != null && success.access_token != '') {
          var params = "google_id=" + success.access_token;
          // var token = success.access_token;
          // this.postLoginGoogle(params);
          this.tesLogin();
        }
      }
    }, (error) => {
      alert(error);
    });
  }

这是http请求的功能

tesLogin(){
    // var params = "google_id="+gid;
    var params = "google_id="+'ya29.Ci_4ApeVHCD7av30Y82JRZPLG4T9ZUgmU1SNLUGIlVV_ufAcCoBc4ILqsY6Ah55i-g';
    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    console.log(params);
    this.http.post(Config.base_url + 'api/user-account/login-google', params, {headers: headers})
        .map(res => res.json()).subscribe(data => {
      console.log(data);
      if (data.success) {
        this.local.set('access_token', data.message);
        this.menu.enable(true);
        this.nav.setRoot(HomePage);
      }
      else {
        this.doAlert("Incorrect email or password");
      }
    });
}

我的问题是,每当我尝试使用 success.access_token 调用时,它都不起作用 但是如果我在没有任何参数的情况下调用请求(只是输入一些随机字符串),那么它可以工作 我尝试使用 chrome 的移动检查器对其进行调试,无论哪种方式它都会返回这样的错误(工作帖和不工作帖都返回错误) 例外:SyntaxError:意外的标记

【问题讨论】:

  • 我已经用 console.log 测试了社交登录结果,它工作正常,这里唯一的问题是 http 请求在使用从社交登录返回的数据时不起作用(打印时很好,不是空)
  • 尝试使用let headers = new Headers({ 'Content-Type': 'application/json' }); 而不是headers.append('Content-Type', 'application/x-www-form-urlencoded');,尽管您按照auth0.com/blog/2015/10/15/angular-2-series-part-3-using-http 中的说明进行操作

标签: ionic-framework angular httprequest ionic2


【解决方案1】:

我建议在标头而不是参数中发送身份验证令牌。类似的东西:

var headers = new Headers();

headers.append('Content-Type', 'application/x-www-form-urlencoded'); headers.append('Authorization', 'Bearer' + authToken);

【讨论】:

    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多