无法在Angular HTTP请求标头中发送用户名和密码

时间:2019-01-17 13:17:12

标签: angular angular7

我需要在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;
}

Screenshot of Network tab in Chrome DevTools

在这方面的任何帮助将不胜感激。

谢谢!

2 个答案:

答案 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'
})