- From: Ben Kelly <notifications@github.com>
- Date: Fri, 21 Aug 2015 07:06:28 -0700
- To: slightlyoff/ServiceWorker <ServiceWorker@noreply.github.com>
- Message-ID: <slightlyoff/ServiceWorker/issues/737/133436502@github.com>
If we do this, how can a site offline a navigation that redirects to a cross-origin resource without CORS headers?
1. `cache.add(redirectingNavUrl, { mode: 'cors', redirect: 'follow' })` fails because redirect does not have CORS header.
2. `cache.add(redirectingNavUrl, { mode: 'no-cors', redirect: 'follow' })` succeeds, but the resulting opaque result cannot be passed to `respondWith()` for a navigation.
Today, however, you can offline the original site during install and offline the cross-origin redirect destination using a read-through-cache approach. You can do:
* `cache.add(redirectingNavUrl, { mode: 'same-origin', redirect: 'manual' })` to store the opaqueredirect.
* The navigation will then follow the redirect and get another service worker for the cross-origin destination. (This doesn't happen in the cases above because skip-serviceworker-flag.)
* That other service worker can offline the final destination.
If we can't store the `opaqueredirect` in Cache, though, then the original site always has to go to network which will fail while offline.
---
Reply to this email directly or view it on GitHub:
https://github.com/slightlyoff/ServiceWorker/issues/737#issuecomment-133436502
Received on Friday, 21 August 2015 14:09:53 UTC