Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать запрос с учётом CORS? (https://javascript.ru/forum/misc/81196-kak-sdelat-zapros-s-uchjotom-cors.html)

CryNet 18.10.2020 15:47

Как сделать запрос с учётом CORS?
 
Я знаю, что этот вопрос 100 раз уже задавался, но я никак не могу избавиться от ошибки:

Access to fetch at 'https://api.seolik.ru/request/age?key=a13c9491b16908e0ac52fad25db8f6f6&domain=seolik.ru' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Я делаю запрос так:
const response = fetch(`https://api.seolik.ru/request/age?key=a13c9491b16908e0ac52fad25db8f6f6&domain=seolik.ru`, {
      method: 'POST', // *GET, POST, PUT, DELETE, etc.
      mode: 'cors', // no-cors, *cors, same-origin
      cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
      credentials: 'same-origin', // include, *same-origin, omit
      headers: {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': 'http://localhost:3000',
        'Access-Control-Allow-Headers': "*"
      },
      redirect: 'follow', // manual, *follow, error
      referrerPolicy: 'no-referrer', // no-referrer, *client
    })
      .then(response => response.json())
      .then(json => console.log(json))

Набор option для fetch-а я взял из MDN. Подскажите как решить эту ошибку сделав запрос правильно, не отключая при этом CORS и не используя флаг 'no-cors'?

laimas 18.10.2020 15:54

Цитата:

Сообщение от CryNet
как решить эту ошибку сделав запрос правильно, не отключая при этом CORS

А вы ничего и не сможете подключить, разрешения (соответствующие заголовки) дает сервер, который вы запрашиваете. Чтобы решить проблему, либо запрос через прокси, либо через свой сервер.

CryNet 18.10.2020 16:07

Цитата:

Сообщение от laimas (Сообщение 529918)
А вы ничего и не сможете подключить, разрешения (соответствующие заголовки) дает сервер, который вы запрашиваете. Чтобы решить проблему, либо запрос через прокси, либо через свой сервер.

Но я могу отключить проверку CORS в браузере и всё будет гуд. Но не хотелось бы

laimas 18.10.2020 16:20

Цитата:

Сообщение от CryNet
Но я могу отключить проверку CORS в браузере и всё будет гуд

Да вы у себя что хотите делайте, а как ваши пользователи?

CryNet 18.10.2020 17:04

Цитата:

Сообщение от laimas (Сообщение 529920)
Да вы у себя что хотите делайте, а как ваши пользователи?

А, я понял. На фронте эту проблему не решить. Спасибо.


Часовой пояс GMT +3, время: 07:59.