【问题标题】:Adding headers to angular service worker responses向 Angular Service Worker 响应添加标头
【发布时间】:2019-11-04 02:12:46
【问题描述】:

服务人员的一些响应违反了 CSP,我可能需要添加此标头:

Content-Security-Policy = "connect-src *;"

按照herehere 的解释,回复所有来自服务人员的回复。

如何使用 Angular PWA 将响应标头添加到 Service Worker 响应?

【问题讨论】:

    标签: angular service-worker progressive-web-apps angular-service-worker angular-pwa


    【解决方案1】:

    您可以使用 http 拦截器在一个地方拦截任何类型的 http 请求和响应。它也适用于服务人员。

    请找详细解释here

    https://angular.io/api/common/http/HttpInterceptor

    例子:

    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(request).pipe(
        ...          
    ));
    }
    

    【讨论】:

    • 我不知道拦截器也适用于服务人员(获取请求),我会试一试。
    • 这行不通。必须先在服务器上设置 CSP 标头,然后才能将响应发送到客户端/Angular 代码。
    • @abraham 标头正在从服务器发送,但是当这些标头被缓存并从服务人员提供时,这些标头不存在。
    【解决方案2】:

    响应头不需要在服务工作者返回的缓存响应上设置,解决方案是在服务器上为 SW 脚本的响应设置特殊的 CSP 头。即,当浏览器请求 ngsw-worker.js(Angular SW 脚本的默认名称)时,服务器应将特殊的 CSP 标头(例如 Content-Security-Policy: connect-src *)附加到该响应。

    【讨论】:

    猜你喜欢
    • 2021-11-08
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2020-01-12
    • 2019-05-05
    • 2021-09-30
    相关资源
    最近更新 更多