使用 HttpClient 模块的 Angular 4 设置 header

标签 angular header httpclient

我是 Angular 的新手,我正在从事一个项目,由于某些原因我必须为服务器端授权设置 header ,我使用的是 Angular 4 和从“@angular/common/http”导入的 HttpClient 模块

这是我的 AuthService 类

import { Injectable } from '@angular/core';
import { User } from '../../models/user';
import { HttpClient, HttpHeaders, HttpRequest } from 
'@angular/common/http';
import { Observable } from 'rxjs';
import { Globals } from '../../utils/global';
import { Converters } from '../../utils/converters';


@Injectable()
export class AuthService {
getUserByToken(token: string): any {
    let headers = new HttpHeaders();
    headers.append('Content-Type', 'application/json');
    headers.append('authorization', 'Bearer ' + token);

    console.log(headers);

    return new Promise((resolve, reject) => {
      this.http.get(this.global.urls['info'], { headers: headers }).subscribe((data) => {
        if (data != null) {
          this.converter.userJsonToObject(data).then((data: User) => {
            this.setCurrentUser(data);
            this.persistToken(data.token);
            resolve(data);
          });
        } else {
          reject('This user is not defined');
        }
      }, (err) => {
        reject(err);
      });
    });

  }

ARC

当我运行我的项目并调用 getUserByToken(token) 函数时,服务器控制台告诉我没有发送 token 。 端点与 ARC 完美配合,因此问题出在客户端。 有没有人可以帮我解决这个问题。 :D

最佳答案

它是 immutable Map 类型,所以如果你分配一个新值,它会重新初始化对象,所以你应该这样做

let headers = new HttpHeaders().set('Content-Type', 'application/json')
                               .set('authorization', 'Bearer ' + token);

let headers = new HttpHeaders().set('Content-Type', 'application/json');
headers = headers.set('authorization', 'Bearer ' + token);

关于使用 HttpClient 模块的 Angular 4 设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724737/

相关文章:

c# - 无法创建任务 <HttpResponseMessage> "await"

javascript - 如何在 Angular 5 中集中来自根组件的深层嵌套输入?

angular - 如何: Re-send an http request when using async pipe

php - 从 PHP 中的 URL 重定向

.net - 从代码访问 Silverlight DataGrid 列标题中的控件

java - 使用 Apache HttpClient 下载文件

httpclient - setDefaultRequestConfig方法会覆盖系统属性 - CloseableHttpClient

javascript - 从 GoJS 中的 base64 图像字符串获取图像高度和宽度

一段时间后 Angular 应用程序卡住浏览器

html - 如何从边框到边框填充整个日历标题?