我正在构建一个React应用程序来使用我使用express.js构建的API。我的React应用程序成功地使用fetch或axios来使用官方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创建Express.js API,并在AWS中设置它并使用React应用程序来使用这个API吗?
谢谢!
错误是:
CORS策略阻止了从源获取'XXX.us-east-1.elasticbeanstalk.com/api/v1/users‘'http://localhost:3000’的
访问:请求的资源上没有“访问控制-允许-原产地”标题。如果不透明响应满足您的需要,请将请求的模式设置为“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");
});
}发布于 2020-01-28 15:37:42
它实际上是快递中的cors问题,因此要解决这个问题,请在开始文件中添加以下内容
var express = require('express');
var app = express();
app.use(cors());https://stackoverflow.com/questions/59950850
复制相似问题