Ich versuche, einige externe Ressourcen/Websites mithilfe eines Service Worker abzurufen und zwischenzuspeichern.ServiceWorker kann externe Ressource ohne Grund nicht abrufen
Mein Code in service-worker.js
ist folgende:
'use strict';
var static_urls = [
'https://quiqqer.local/test?app=1',
'https://quiqqer.local/calendar?app=1'
];
self.addEventListener('install', function (event)
{
event.waitUntil(
caches.open('ionic-cache').then(function(cache) {
cache.addAll(static_urls.map(function (urlToPrefetch)
{
console.log(urlToPrefetch);
return new Request(urlToPrefetch, {mode: 'no-cors'});
})).catch(function(error) {
console.error(error);
}).then(function() {
console.log('All fetched and cached');
});
})
);
});
die diese Ausgabe erstellt:
service-worker.js: https://quiqqer.local/test?app=1
service-worker.js: https://quiqqer.local/calendar?app=1
service-worker.js: TypeError: failed to fetch
service-worker.js: All fetched and cached
(index): service worker installed
Was ist der Grund für das Scheitern holen?
Meine Website https://quiqqer.local hat den Header Access-Control-Allow-Origin
zu ‚*
‘
Vielleicht setzen es ist mein selbst signiertes Zertifikat für meine Website?
Ich habe eine Ausnahme für dieses Zertifikat hinzugefügt. Wenn ich die Website öffne, zeigt Chrome an, dass die Seite neben der URL-Leiste nicht sicher ist, aber der Inhalt wird weiterhin angezeigt.
Was sehen Sie in der Registerkarte Netzwerk? Es gibt mehr zu unterstützen [CORS] (http://www.w3.org/TR/access-control/) als nur diese eine Kopfzeile. –
Separat: Denken Sie daran, dass Sie, wenn Sie 'catch' verwenden und keinen Fehler in Ihren' catch' Handler werfen oder ein Versprechen zurückweisen, das abgelehnt wird, eine Ablehnung in eine Auflösung umwandeln (weshalb Sie sehen "Alle geholt und zwischengespeichert", wenn sie nicht alle tatsächlich abgeholt und zwischengespeichert werden. –
Ohne den Haken sieht es so aus: – Panni