angular - Angular httpHeaders post menthod 无法设置参数
问题描述
我正在尝试使用以下方法从 RestAPI 获取 authtoken。相同的 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;
});
}
解决方案
使用 HTTP 标头选项作为发布请求中的第三个参数。
login(loginData) {
let httpOptions = {
headers: new HttpHeaders({
"Access-Control-Allow-Credentials": "true",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
'Authorization' : "Basic " + btoa("username:password"),
'username': loginData.email,
'password': loginData.password,
'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;
});
}
推荐阅读
- postgresql - 如何在特定日期后提取整月的记录?
- javascript - SinonStub 函数观察者
- python - Pandas 0.22.0 版 - drop_duplicates() 有一个意外的关键字参数“keep”
- c# - Oracle EF Core - 如何配置自动生成的日期时间列?
- java - ConstraintViolationException 处理程序未在 Micronaut 中执行
- javascript - 如何使用 Phaser 3 绘制多边形?
- apache-spark - 如何从其他两个数据框创建数据框?
- excel - vba 变量赋值中的第二个等于 = 有什么作用?
- python - 如何从 Tensorflow 模型中恢复 GAN 的生成器?
- java - 如何在 Java 中获取二维列表的元素?例如,列表
- >