0

我参考了此处记录的角度服务人员dataGroups配置:https ://angular.io/guide/service-worker-config#datagroups 。

我的配置dataGroups如下:

  "dataGroups": [
    {
      "name": "api-performance",
      "urls": [
        "/api/referential/**"
      ],
      "cacheConfig": {
        "strategy": "performance",
        "maxSize": 100,
        "maxAge": "3d"
      }
    }
  ]

它现在缓存所有匹配该模式的 http 请求。

但是,我们还传递了一个自定义的 http 请求标头(即x-project-id: 8545dbf0-6e8b-47b0-b5ad-874415b20b63),http 响应将依赖该标头。

因此,对于两个不同x-project-id的值,响应的内容会有所不同。

让我们看一个例子:

第一个 GET 请求:

网址:/api/referential/xxx 标题:x-project-id: foo

第二个 GET 请求:

网址:/api/referential/xxx 标题:x-project-id: bar

不幸的是,使用我当前的配置,角度服务工作者将缓存第一个请求并返回第一个请求的响应内容,无论我的自定义标头是否已更改...

这是设计使然吗?

有没有办法确保角度服务人员考虑到自定义 http 标头,还是我必须project Id在 url 中传递?

4

0 回答 0