Я попытался перейти 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'})
Хорошо, теперь это работает ... но я не могу это прочитать. знак равно
Какова же цель непрозрачного ответа?
Status code
всегда0
, как проверить, если это было успешно, еслиstatus is never 200
?Непрозрачные ответы не могут быть доступны с помощью JavaScript, но вы все равно можете кэшировать их с помощью Cache API и отвечать с ними в
fetch
обработчике событий в сервисном работнике. Поэтому они полезны для перевода вашего приложения в автономный режим, а также для ресурсов, которые вы не можете контролировать (например, ресурсы в CDN, которые не устанавливают заголовки CORS).источник
Также есть решение для приложения Node JS. CORS Anywhere - это прокси NodeJS, который добавляет заголовки CORS к прокси-запросу.
URL-адрес прокси-сервера буквально берется из пути, проверяется и проксируется. Протокольная часть прокси-адреса URI является необязательной и по умолчанию имеет значение «http». Если указан порт 443, по умолчанию используется протокол «https».
Этот пакет не накладывает никаких ограничений на методы http или заголовки, кроме файлов cookie. Запрашивать учетные данные пользователя запрещено. Приложение может быть настроено так, чтобы запрашивать заголовок для передачи запроса, например, чтобы избежать прямого посещения браузера. https://robwu.nl/cors-anywhere.html
источник
Javascript немного сложно получить ответ, я исправил его, получив API от бэкэнда и затем вызвав его к интерфейсу.
источник