我在一个service-worker.js文件上,试图从Progressive Web App的API端点缓存JSON数据。
这会在缓存中创建一个天气文件,但是内容是我的HTML页面。如果我使用console.log(data),则可以看到所需的对象。
我尝试过cache.add(JSON.stringify(data))和cache.addAll(data)无济于事。
self.addEventListener('install', event => {
event.waitUntil(
caches.open('weather')
.then(function(cache) {
fetch('/api/weathercurrent')
.then(function(response) {
return response.json();
})
.then(function(data) {
cache.add(data);
})
})
)
});
答案 0 :(得分:1)
解决方案比我想象的要简单。我以为因为数据是JSON,所以我需要使用请求和响应处理程序。
event.waitUntil(
caches.open('weathercurrent')
.then(cache => cache.add('/api/weathercurrent'))
);