Что такое непрозрачный ответ, и какой цели он служит?



пробовал fetch URL старого сайта, и произошла ошибка:



Fetch API cannot load http://xyz.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://abc' is therefore not allowed access.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.


я понял намек и попытался сделать запрос, который возвращает непрозрачный ответ:



fetch("http://xyz", {'mode': 'no-cors'})


хорошо, теперь это работает... но я не могу его прочитать. =



какова же тогда цель непрозрачного ответа?

587   3  

3 ответов:

рассмотрим случай, когда работник службы действует как агностический кэш. Ваша единственная цель-обслуживать те же ресурсы, которые вы получите от сети, но быстрее. Конечно, вы не можете гарантировать, что все ресурсы будут частью вашего источника (например, библиотеки, обслуживаемые из CDNs). Поскольку работник службы имеет потенциал изменения сетевых ответов, вы должны гарантировать, что вас не интересует ни содержание ответа, ни его заголовки, ни даже результат. Ты только интересует ответ как черный ящик, чтобы, возможно, кэшировать его и обслуживать его быстрее.

вот почему { mode: 'no-cors' } было сделано для.

непрозрачные ответы не могут быть доступны с помощью JavaScript, но вы все равно можете кэшировать их с помощью кэш API и ответить с ними в fetch обработчик событий в работнике службы. Таким образом, они полезны для создания вашего приложения в автономном режиме, а также для ресурсов, которые вы не можете контролировать (например, ресурсы на CDN, который не устанавливает заголовки CORS).

есть также решение для узла JS app. CORS Anywhere-это прокси NodeJS, который добавляет заголовки CORS к проксируемому запросу.

url-адрес прокси-сервера буквально берется из пути, проверяется и проксируется. Часть протокола проксируемого URI является необязательной и по умолчанию имеет значение "http". Если указан порт 443, то по умолчанию используется протокол "https".

этот пакет не накладывает никаких ограничений на методы http или заголовки, за исключением cookies. Запрос учетных данных пользователя является отвергнутый. Приложение может быть настроено на требование заголовка для проксирования запроса, например, чтобы избежать прямого посещения из браузера. https://robwu.nl/cors-anywhere.html

Comments

    Ничего не найдено.