带有 POST 请求的 Angular Service Worker

标签 angular angular-service-worker

我将 Angular 5.2.7 与 Angular Service Worker 5.2.7 结合使用。

我想缓存 Web 服务调用。因此,我在 ngsw-config.json 中为 dataGroups 提供了此配置:

"dataGroups": [{
  "name": "tasks-users-api",
  "urls": ["/api", "/rest"],
  "cacheConfig": {
    "strategy": "freshness",
    "maxSize": 20000,
    "maxAge": "1h",
    "timeout": "5s"
  }
}]

我尝试缓存这两个 URL: https://randomuser.me/api/?results=20 ---> 没关系 https://test.moodlecloud.com/webservice/rest/server.php ---> KO了

第一个按预期缓存。这是一个简单的 GET 服务。 第二个不是。它是一个 POST 服务,其中表单数据作为有效负载发送。

知道这有什么问题吗?

最佳答案

Service Worker API不允许 POST/PUT 请求。

在此blog article它展示了如何使用 Indexed Db(按照 Roman Gherta 的建议)来存储 POST/PUT 请求的示例。

Mozilla resource 上也建议使用此解决方案.

关于带有 POST 请求的 Angular Service Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49101130/

相关文章:

javascript - 如何在 Angular 2 或 4 的 Jasmine 测试中模拟鼠标事件

javascript - Angular 4+ 通过接口(interface)从子级向父级发送服务

带有@angular/pwa 包的 Angular Service Worker 离线时显示 `HTTP error 504`

angular - Angular Service Worker和index.html缓存

Angular Service Worker 未在开发模式下注册

angular - 如何使用Angular的safety-worker.js卸载Service Worker?

javascript - 通过 angular2 和 typescript 访问 chrome 扩展

angular - 饼图 (HighChart) 的内部大小随着系列中提供的值而变化

angular - 使用 Service Worker 预取 API 调用

css - 如何在 Angular Material 中获取此模板?