Я получаю следующее сообщение об ошибке, которое не позволяет мне продолжить
Failed to load https://site/data.json: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' 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. localhost/:1 Uncaught (in promise) TypeError: Failed to fetch
Я пытаюсь включить CORS в своем файле реакции js, но не смог получить ожидаемый результат. Я установил расширение Chrome, и оно работает. Но чтобы использовать это на рабочем сайте, мне нужно включить его в моем коде. Как правильно оформить код для включения CORS.
fetch(URL, {
mode: 'cors',
headers: {
'Access-Control-Allow-Origin':'*'
}
})
.then(response => response.json())
.then(data => {
Access-Control-Allow-Origin должен быть заголовком ответа, запрос клиента - инвалидЯ думаю, что CORS можно включить и на стороне клиента.
хм, поэтому с сообщением об ошибке выше, согласно опубликованной ссылке, кажется, что Access-Control-Allow-Origin должен быть включен из https://site/:, а не в моем http://localhost:8080. Если я понимаю это в простоте.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Браузер имеет междоменную безопасность на стороне клиента, которая проверяет, разрешено ли серверу получать данные из вашего домена. Если Access-Control-Allow-Origin недоступен в заголовке ответа, браузер запрещает использовать ответ в вашем коде JavaScript и генерирует исключение на уровне сети. Вам необходимо настроить cors на стороне вашего сервера.
Вы можете получить запрос с помощью mode: 'cors'. В этой ситуации браузер не будет запускать выполнение для кросс-домена, но браузер не будет отвечать в вашей функции javascript.
Таким образом, в обоих случаях вам необходимо настроить cors на вашем сервере или вам нужно использовать собственный прокси-сервер.
Что делать, если я пытаюсь очистить результаты Google? Например, я хочу запросить https://www.google.com у своего клиентского кода и проанализировать результаты. Является ли это возможным? Я получаю ту же ошибку, что и он. Означает ли это, что google.com не разрешает запросы CORS на свою главную страницу поиска? Спасибо.
Если вы хотите получить любой другой сервер, например google или facebook, и этот сервер не предоставляет доступ, вам может потребоваться сервер для обработки этого. На сервере вы можете получить ответ от Google и отправить обратно клиенту.
Думаю, это опечатка, это no-cors, который возвращает непрозрачный ответ, см. stackoverflow.com/a/43268098/6324591
CORS должен обрабатываться на стороне сервера.