Angular Preflight 请求添加标头

Posted

技术标签:

【中文标题】Angular Preflight 请求添加标头【英文标题】:Angular Preflight Request to Add Headers 【发布时间】:2021-07-03 01:28:18 【问题描述】:

我有这个项目在 Angular 8 中运行,并且确实使用预检和实际 API 调用了 api。由于预检 OPTIONS 没有标头 Strict-Transport-Security: max-age=31536000;,我们的网络安全存在问题。 includeSubDomains 而实际的 GET api 有一个。

您是否知道如何以及在何处添加 Strict-Transport-Security: max-age=31536000; includeSubDomains 在 preflight 和实际请求下,以便两个请求具有相同的标头?

【问题讨论】:

【参考方案1】:

这是将 HttpHeader 设置为请求的方式。

import Injectable from '@angular/core';
import Http, Headers from '@angular/http';

@Injectable()
export class HttpClient 

  constructor(private http: Http) 

  get(url) 
    let headers = new Headers();
    headers.append('Transport-Security', 'max-age=31536000;includeSubDomains')

    return this.http.get(url, 
      headers: headers
    );
  



【讨论】:

我尝试将它添加到 httpclient 的标头中,但我遇到了 CORS 问题。但是当我删除它时没有CORS 您需要在服务器端启用CORS 修复在 FE 请求中应该是这样的,但在服务器中也应该设置

以上是关于Angular Preflight 请求添加标头的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 和 PreFlight 请求

导致 PREFLIGHT 的 HTTP 标头 - 澄清?

预检标题不符合预期

如何在 Angular 5 的标头中添加 CORS 请求

如何将授权标头添加到 Angular http 请求?

Angular 6 - Spring MVC :: Options preflight request throws 500 internal Server Error