Связь с API — избыточна

Я строю проект с реакцией и избыточностью, но я не могу связаться с моим API,
У меня есть это,

componentDidMount() {
const {dispatch} = this.props;
dispatch(fetchByQuerystring());
}

а также fetchByQuerystring является:

export function fetchByQuerystring() {
return function(dispatch) {

return fetch(`http://my_domain.dev/api`)
.then(response => response.json())
.then(json => dispatch(receiveByQuerystring(json)));
}
}

Когда я запускаю его, я получаю эту ошибку:

Fetch API не может загрузить http://my-domain.dev/api. нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс. ПроисхождениеHTTP: // локальный: 3000Поэтому не допускается
доступ. Если непрозрачный ответ отвечает вашим потребностям, установите запрос
режим «no-cors» для извлечения ресурса с отключенным CORS.

Как я могу решить эту проблему?

1

Решение

Когда вы находитесь на сайте A и вызываете (с ajax-запросами) другой сервер B (другой порт, другое доменное имя / IP-адрес или другой протокол) браузер ожидает, что B явно разрешит A.
Это делается с помощью заголовков ответа HTTP, добавленных сервером B (и OPTIONS поддержка), см. CORS (Обмен ресурсами между источниками).

Если вы должны иметь возможность вызывать свой API с других серверов в рабочем состоянии, добавив CORS поддержка в Laravel хорошая идея Не добавляйте их, если они вам не нужны.

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

В противном случае вы должны обслуживать оба ресурса (API и веб-интерфейс реакции) из одного источника.

1

Другие решения

Вам потребуется установить заголовки CORS на локальном веб-сервере, который работает по адресу http: /my-domain.dev/api.

Заголовки для отправки: Access-Control-Allow-Origin: http://my-domain.dev/api

Это может помочь Laravel github.com/barryvdh/laravel-cors

0

По вопросам рекламы [email protected]