У меня возникает проблема с моим изоморфным приложением JavaScript с использованием React и Express.Проблема «Access-Control-Allow-Origin» при вызове API из React (Isomorphic app)
Я пытаюсь сделать запрос HTTP с axios.get, когда мой компонент монтирует
componentDidMount() {
const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
axios.get(url).then(res => {
//use res to update current state
})
}
я получаю статус 200 разрешения от API, но я не получаю никаких ответные данные и получаю сообщение об ошибке в моей консоли
XMLHttpRequest cannot load http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:3000' is therefore not allowed access.
Однако, если я делаю запрос в моем server.js
const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
axios.get(url).then(res => {
//console.log(res);
});
Он отлично работает, и я получаю данные ответа при запуске сервера. Это проблема с фактическим API, или я делаю что-то неправильно? Если это проблема CORS, я предполагаю, что запрос в server.js тоже не будет работать? Благодаря!
Безопасность @Todd всегда должна быть перед удобством. К счастью, прокси-серверы могут занимать 5 минут. Кроме того, существуют прокси-сервисы, которые уже используют этот тип функций, но позволяют только так много бесплатных запросов. Настройка собственного прокси-сервера стоит крайне минимальных усилий. – azium