我需要在HTTP请求中发送用户名和密码作为请求标头(而不是查询参数)。
我在Angular服务中编写了以下get
方法。
http.get() {
let headers_object = new HttpHeaders();
headers_object.append('username', 'Test');
headers_object.append('password', 'Test123');
const httpOptions = {
headers: headers_object
};
const uri = 'http://localhost:8083/test';
let res;
this.http.get(uri, httpOptions)
.pipe(map(data => data)).subscribe(result => {
console.log(result);
res = result;
});
return res;
}
在这方面的任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
由于HttpHeaders
是不可变的(下面定义了不可变的对象:),
不可变对象是创建后状态无法修改的对象。 -What are mutable and immutable data structures?
这意味着您只能在同一实例中设置一次。
请参见以下示例:
let headers_object = new HttpHeaders()
.set('username', 'Test')
.set('password', 'Test123');
答案 1 :(得分:1)
说实话很奇怪。该代码看起来不错,应该可以正常工作。要进行调试,您可以尝试在ins控制台中打印headers对象并共享在那里看到的内容吗?
此外,以下面的方式试一下:
headers: new HttpHeaders({
'username': 'Test',
'password': 'Test123'
})