php - 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 参数。
解决方案
按照我的评论:您可以创建一个负责处理所有标题的服务。这也是一个很好的做法:你集中了一个特性的逻辑。
这是一个可以做到这一点的服务实例。它可以创建 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;
}
}
推荐阅读
- angular - Stripe / ngx-stripe:如何显示保存的付款方式
- c# - 将项目列表分解为可用于表示它的最小组数的算法
- syslog - 将系统日志客户端主机名添加到流利位事件
- python - 使用 django rest auth 和 mongodb 登录
- java - 在 JPA 存储库 Spring Boot 应用程序中调用 Postgres 存储过程
- ios - 使用 xcframeworks 运行我的项目时出现脚本错误“从 ArcGIS 致命错误中提取 arm64:lipo:输入文件”
- php - php工匠路线:列出错误异常
- ios - Xcode 12.5 调试器自 macOS Big Sur 11.3 起运行缓慢(本机 Swift 项目)
- java - 如何在java中提取前两个字符和后两个字符之间的字符串?
- time - 如何验证时间是否在SSRS中的时间范围内