Я создаю приложение React для использования API, созданного мной с использованием express. js. Мое приложение React успешно получает данные, используя fetch или ax ios для запроса данных с использованием официального API («https://jsonplaceholder.typicode.com/users»), но я получаю сообщение об ошибке, когда пытаюсь получить данные из собственного API ( "XXX.us-east-1.elasticbeanstalk.com/api/v1/users") или от моего локального хоста ("http://localhost: 81 / api / v1 / users ").
Вопросы Мой запрос GET неверен? Есть ли проблема с возвратом из моего API? Вы бы порекомендовали какие-либо ресурсы, чтобы научиться создавать RESTful API с Express. js, настроить его в AWS и использовать этот API с приложением React?
Спасибо!
Ошибка:
Доступ к выборке в 'XXX.us-east-1.elasticbeanstalk.com/api/v1/users' из источника 'http://localhost : 3000 'было заблокировано политикой CORS: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS
Использование fetch
:
componentDidMount() {
fetch
('https://jsonplaceholder.typicode.com/posts/1')
// ('XXX.us-east-1.elasticbeanstalk.com/api/v1/users')
// ('http://localhost:81/api/v1/users')
.then(response => response.json())
.then(data =>
this.setState({
title: data.title,
body: data.body
})
);
}
Использование axios
:
componentDidMount() {
axios
.get('https://jsonplaceholder.typicode.com/users').then(res => this.setState({ users: res.data }))
// .get('http://localhost:81/api/v1/users', { crossDomain: true }).then(res => this.setState({ users: res.data }))
.catch(function (error) {
console.log("Error");
});
}