相关疑难解决方法(0)

服务人员中断301重定向

我在WordPress网站上使用服务人员,并且弄乱了从https://example.com/pagehttps://example.com/page/的重定向。

第一次加载后,转到不带斜杠的URL眨眼浏览器说“无法访问此站点”,而Firefox说“内容损坏”。

基于我对https://medium.com/@boopathi/service-workers-gotchas-44bec65eab3f#.hf3r4pbcs的阅读以及如何更改请求的标头?我必须检测何时响应为3xx并将重定向模式设置为手动。

但是,根据我的研究,我没有尝试过任何方法。我该如何解决?

当前服务工作者文件:

var cacheName = 'v14';

var urlsToCache = [
  // list of URLs to precache
];

self.addEventListener('install', event => {

  function onInstall(event) {
    return caches.open(cacheName)
      .then(cache => cache.addAll(urlsToCache));
  }

  event.waitUntil(
    onInstall(event)
      .then(() => self.skipWaiting())
  );

});

self.addEventListener('activate', event => {

  function onActivate (event) {
    return caches.keys()
      .then(cacheKeys => {
        var oldCacheKeys = cacheKeys.filter(key => key.indexOf(cacheName) !== 0);
        var deletePromises = oldCacheKeys.map(oldKey => caches.delete(oldKey));
        return Promise.all(deletePromises);
      }) …
Run Code Online (Sandbox Code Playgroud)

javascript service-worker progressive-web-apps

5
推荐指数
1
解决办法
1815
查看次数

仅限Chrome(服务工作者):'...重定向响应用于重定向模式不是"跟随"的请求

当我在Chrome中刷新(或离线)时,我会收到"无法访问此站点",并且以下内容已登录到控制台:The FetchEvent for "http://localhost:8111/survey/174/deployment/193/answer/offline/attendee/240/" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow"..当我在Firefox中刷新时,一切正常.有人可以解释为什么会这样吗?

这是我简化的SW.

importScripts("/static/js/libs/idb.js")

var CACHE_NAME = "upshot-cache-version3"
var urlsToCache = [...]

self.addEventListener("install", event => {
  event.waitUntil(
    caches
      .open(CACHE_NAME)
      .then(cache => {
        urlsToCache.map(url => cache.add(url))
      })
  )
})

self.addEventListener("activate", event => {
  clients.claim()
})

self.addEventListener('fetch', event => {
  event.respondWith(
    caches
      .match(event.request)
      .then(response => {

        if (response) {
          return response
        }

        var fetchRequest = event.request.clone()

        return fetch(fetchRequest).then(response …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome service-worker fetch-api

5
推荐指数
1
解决办法
3837
查看次数