API 400错误要求

时间:2018-09-01 10:11:58

标签: angular ionic3

我正在尝试使用API​​对用户进行身份验证。我已经实现了一种登录方法。

 login() {

this.key = this.credentials.username + ":" + this.credentials.password;
this.base64 = btoa(this.key)  //base64

this.url = encodeURI(this.base64);  //url

this.contentHeader = new HttpHeaders().set("Authorization", "Basic " + this.url);

return new Promise((resolve, reject) => {
  console.log(this.contentHeader)
  this.http.post(this.LOGIN_URL, null, { headers: this.contentHeader })
    .subscribe(res => {
      resolve(res);
      console.log("success:" + res.id_token)
      res => this.authSuccess(res.id_token)

    }, (err) => {

      console.log("error occured");
      reject(err);
    });
});

}

我正在尝试连接用户名和密码,然后编码为base64。再次将其编码为URL,并与标头结合起来发布。我已经正确地与邮递员进行了正确的身份验证。但是在ionic应用中,它说的是错误的请求。

1 个答案:

答案 0 :(得分:0)

使用HTTP或HTTPClient发送POST请求时,第二个参数作为POST正文发送。似乎在您的代码中,您不是将授权发送为标头,而是发送为POST正文。

将其更改为:

this.http.post(this.LOGIN_URL, null, {
    headers: HttpHeaders().set("Authorization", "Basic " + this.url)
  })