Нет разрешения доступа к данным по api JS

232
20 апреля 2018, 15:25

Здравствуйте, возникла проблема с получением данных по api.
Делаю запрос (убрал все лишнее для удобства):

try {
    fetch(API_SERVER)
      .then(response => {
        if (response.ok) {
          return response.json()
            .then(products => {
              console.log(products)
            })
        } else {
          console.log(new Error(response.status));
        }
      });
  } catch (err) {
    alert(err);
  }

И получаю ошибку:

Failed to load https://apiName: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' 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

Если делаю fetch(API_SERVER, {mode: 'no-cors'}), то вообще не понимаю, что происходит. console.log(new Error(response.status)); в консоль выводит Error: 0

Сначала думал, что дело в localhost, но при загрузке на хостинг ошибка та же. Скачал расширение для Chrome Allow-control-allow-origin *, при включенном расширении при mode: 'cors' ошибки никакой нет.

Подскажите, пожалуйста, в чем проблема может быть и как ее решить?

Answer 1

Ошибка заключается в том что API которая Вам должна ответить, не добавляет в заголовок: Access-Control-Allow-Origin, следственно безопасность браузера не позволит Вам принять данный запрос.

API которая должна Вам ответить должна иметь настроенный CORS.

READ ALSO
проблема множественного добавления

проблема множественного добавления

Отслеживаю элементы iteminfo0_item_name и iteminfo1_item_name

202
Javascript не записывает данные формы в localstorage

Javascript не записывает данные формы в localstorage

Пытаюсь записать данные формы из Contact form7 через js в localstorage Но они не записываются записывается лишь одно значение как key=1904

206
Булевые знаечния и логически операции

Булевые знаечния и логически операции

Объясните пожалуйста как это работате?

207
Как убрать “Г.” в JavsScript

Как убрать “Г.” в JavsScript

Здравствуйте, у меня возникла некая проблемка, нужно убрать "Г" при выводе даты в js

186