我将 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/