Я строю проект с реакцией и избыточностью, но я не могу связаться с моим 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.
Как я могу решить эту проблему?
Когда вы находитесь на сайте A и вызываете (с ajax-запросами) другой сервер B (другой порт, другое доменное имя / IP-адрес или другой протокол) браузер ожидает, что B явно разрешит A.
Это делается с помощью заголовков ответа HTTP, добавленных сервером B (и OPTIONS
поддержка), см. CORS (Обмен ресурсами между источниками).
Если вы должны иметь возможность вызывать свой API с других серверов в рабочем состоянии, добавив CORS поддержка в Laravel хорошая идея Не добавляйте их, если они вам не нужны.
Если ваши вызовы API достаточно просто а также не требуют куки, вы можете настроить свой локальный Apache просто добавить заголовок Access-Control-Allow-Origin: *
,
В противном случае вы должны обслуживать оба ресурса (API и веб-интерфейс реакции) из одного источника.
Вам потребуется установить заголовки CORS на локальном веб-сервере, который работает по адресу http: /my-domain.dev/api.
Заголовки для отправки: Access-Control-Allow-Origin: http://my-domain.dev/api
Это может помочь Laravel github.com/barryvdh/laravel-cors