Angular httpHeaders post mend无法设置参数

问题描述 投票:0回答:2

我正在尝试使用以下方法从RestAPI获取身份验证。相同的url,Params和Headers会向我返回邮递员的正确答复。但在角度上我得到401未经授权的错误。请帮助我了解我在哪里做错了?我无法理解为什么我的标题位于httpHeaders中的lazyUpdate对象中。

提前感谢。

login(loginData) {
const httpOptions = {
  headers:new HttpHeaders().set("Authorization", "Basic " + btoa("username:password")).set("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").set("access-control-allow-credentials",'true'),
  params:new HttpParams().set('username', loginData.email).set('password', loginData.password).set('grant_type', 'grant_type')
}
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', httpOptions).subscribe(
  data => {
    this.saveToken(data);
    return true;
  },
  err => {
    alert('Invalid Credentials')
    return false;
  });

}

请查看附件中从浏览器发送的标题的屏幕截图。enter image description here

我正在尝试使用以下方法从RestAPI获取身份验证。相同的url,Params和Headers会向我返回邮递员的正确答复。但在角度上我得到401未经授权的错误。 ...

angular http-headers httpclient angular-httpclient
2个回答
0
投票

post方法的第二个参数是HTTP调用的body有效负载。您需要使用第三个参数,用于选项。您可以为body参数传递null值,但是没有body的post调用通常是滥用的标志。


0
投票

使用HTTP标头选项作为发布请求中的第三个参数。

© www.soinside.com 2019 - 2024. All rights reserved.