Есть код в service worker для показа автономной страницы, когда нет сети.
self.addEventListener('fetch', (event) => {
const requestURL = new URL(event.request.url);
if (requestURL.origin == location.origin) {
if (event.request.mode == 'navigate' && event.request.method == 'GET')
event.respondWith(isReachable().then((r)=>r ? fetch(event.request):caches.match(OFFLINE_URL)));
}
});
function isReachable() {
return fetch(location.origin, {method: 'HEAD', mode: 'no-cors'})
.then((resp) => resp && (resp.ok || resp.type === 'opaque'))
.catch((e)=>{});
}
Работает нормально, но код конфликтует с кодом php который служит для фикса от повторной отправки формы.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION["post"] = $_POST;
header("Location: ".$_SERVER["REQUEST_URI"]);
exit;
}
$_SESSION["post"] исчезает. Я засек этот баг и в принципе могу его пофиксить.
Но меня интересует, что именно происходит и почему. Кто-нибудь может объснить ?