Как получить собственный URL или имя хоста в ServiceWorker? - PullRequest
0 голосов
/ 28 февраля 2020

В самом коде ServiceWorker JavaScript (а не в коде страницы) я хотел бы знать свой собственный URL. Или, по крайней мере, собственный хост.

Мне это нужно, потому что мне нужно другое поведение кэша для ресурсов моего собственного сервера и ресурсов других серверов.

Другими словами: event.request.url всегда URL с хостом и путем (например, https://example.com/index.html). Мне нужно знать, если этот URL-адрес от того же хоста, что и сам ServiceWorker от.

1 Ответ

1 голос
/ 10 марта 2020

Внутри контекста выполнения работника службы self имеет значение ServiceWorkerGlobalScope, которое наследуется от WorkerGlobalScope. Есть location свойство на WorkerGlobalScope, которое может дать вам необходимую информацию.

Вы можете применить это на практике для решения своей проблемы с помощью вспомогательного метода, такого как:

function isSameOrigin(urlString) {
  const urlOrigin = (new URL(urlString)).origin;
  return urlOrigin === self.location.origin;
}
...