Как я могу обработать 301 перенаправления в сервисном работнике? - PullRequest
1 голос
/ 16 января 2020

На моем веб-сайте на персидском языке есть некоторые проблемы с обработкой 301 перенаправлений , когда работник службы выбирает некоторые запросы с персидскими / персидскими символами .

Как обычно, когда пользователь вводит ключевое слово, например, رامسر (Ramsar as Engli sh) отправляет поисковую форму Ajax, запрос, как показано ниже, отправляется на сервер (Apache / Laravel):

https://www.example.com/s?search=%D8%B1%D8%A7%D9%85%D8%B3%D8%B1&gstnum=1

Обратите внимание, что % D8% B1% D8% A7% D9% 85% D8% B3% D8% B1 - это Unicode из رامسر .

Итак, на бэкэнде этот запрос перенаправляет на другой URL (301 Redirecting):

https://www.example.com/s/ramsar/%D8%A7%D8%AC%D8%A7%D8%B1%D9%87-%D9%88%DB%8C%D9%84%D8%A7-%D9%88-%D8%B3%D9%88%D8%A6%DB%8C%D8%AA-%D8%AF%D8%B1-%D8%B1%D8%A7%D9%85%D8%B3%D8%B1?gstnum=

Выше приведен тип кодировки этого URL:

https://www.example.com/s/ramsar/اجاره-ویلا-و-سوئیت-در-رامسر

Но, когда сервис-работник работает, он не может установить правильную настройку символов в ответном URL-адресе, он возвращает:

https://www.example.com/s/ramsar/اجارÙ-ÙÛÙا-Ù-سÙئÛت-در-راÙسر

Это мой код для метода выборки сервис-работника:

self.addEventListener("fetch", function (event) {
  if (event.request.method === "GET" && event.request.mode === "navigate") {
    event.respondWith(async function () {
      try {
        var networkResponse = await fetch(event.request);
        return networkResponse;
      } catch (error) {
        ...
      }
    }());
  }
});

Что я могу сделать?

...