热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular4使用HttpClient模块设置标头

如何解决《Angular4使用HttpClient模块设置标头》经验,为你挑选了1个好方法。

我是Angular的新手,我正在研究一个项目,由于某些原因,我必须设置服务器端授权的头,我使用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);
      });
    });

  }

弧

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



1> Aravind..:

它是类型的, 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);


推荐阅读
author-avatar
手机用户2602898385
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有