首页 > 解决方案 > Angular 4/5 中 php getallheaders() 函数的等价物是什么?

问题描述

Angular 4/5 中 php getallheaders() 函数的等价物是什么?

我需要获取请求标头,但在 Angular 中找不到。我只能使用 Angular 获取响应标头。

当应用程序开始不发送 get 或 post 请求时,我需要获取请求标头参数。在图片中我需要 X-MSISDN 和 X-IMSI 参数

我尝试了 Interceptor 类,但它仅在我发送 get 或 post 请求时才有效。

解释:

我用这个 url 打开应用程序:http://localhost:4200/#/ 这次我的请求头是这样的:

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
Cookie: s_fid=07C355F600B90B3D-291EBB86E5858A2F; s_cc=true; gdslv_s=Less%20than%201%20day; s_vnum=1556196774798%26vn%3D7; s_invisit=true; s_ppvl=login%2520sayfasi%2C100%2C100%2C933%2C375%2C667%2C375%2C667%2C2%2CLP; s_ppv=Welcome%253Atarife%253Aanasayfa%2C100%2C100%2C667%2C375%2C667%2C375%2C667%2C2%2CP; s_ppn=Welcome%3Atarife%3Aanasayfa; gdslv=1524831169979; s_getNewRepeat=1524831169981-Repeat; utag_main=v_id:0162fcdd2735001117d070e941e904072002406a00918$_sn:7$_ss:0$_st:1524832969982$_pn:2%3Bexp-session$ses_id:1524831079859%3Bexp-session$_prevpage:Welcome%3Atarife%3Aanasayfa%3Bexp-1524834769972
Host: localhost:4200
Pragma: no-cache
Referer: http://localhost:4200/
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
X-IMSI: 286026134103281
X-MSISDN: 905499914581

Request URL : http://localhost:4200/sockjs-node/info?t=1524831359435

我需要采用 X-IMSI 和 X-MSISDN 参数。

标签: phpangularhttp-headers

解决方案


按照我的评论:您可以创建一个负责处理所有标题的服务。这也是一个很好的做法:你集中了一个特性的逻辑。

这是一个可以做到这一点的服务实例。它可以创建 JSON 标头,将新标头附加到列表中,重置它们……你自己看看。

import { Injectable } from '@angular/core';
import { Headers } from '@angular/http';

@Injectable()
export class HeadersManagerService {

  private headers: Headers;

  constructor() {
    this.resetHeaders();
  }

  resetHeaders() {
    this.headers = new Headers();
  }

  newHeader(key, value) {
    this.headers.append(key, value);
  }

  createJsonHeaders() {
    this.resetHeaders();
    this.headers.append('Content-Type', 'application/json');
  }

  getHeaders() {
    return this.headers;
  }

}

推荐阅读