我创建了一个node. JSExpress服务器,它的作用是使用API将JSON发送到我的前端。我完成了后端并将其放在AWS服务器上。现在我只想在React前端工作。我在localhost:3000上启动react,并向AWS服务器发出请求,但我收到一个CORS错误,告诉我localhost:3000无权向此服务器发送请求。Access to fetch at 'http://www.myawssever.fr:4000/api-url/' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
我已经尝试了多种解决方案来授权localhost:3000,但我认为问题并不来自那里,因为对于服务器localhost:3000本身就是地址!你知道我如何通过向服务器(AWS)发送请求来从我的计算机(React在localhost:3000上)测试我的背部吗?
2条答案
按热度按时间qncylg1j1#
Configure CORS on your AWS Server
首先,您需要配置服务器,以便在
response
中包含适当的CORS headers
。您需要添加**“Access-Control-Allow-Origin”header,其值为“http://localhost:3000”**,以允许来自React应用的请求。Exact method for configuring CORS
配置CORS的确切方法取决于您使用的服务器技术(例如Express,Apache,Nginx)。例如,如果您使用Express,则可以使用cors中间件。以下是如何使用Express配置CORS的示例:
Restart your AWS server
配置CORS后,重新启动AWS服务器以应用更改。
ekqde3dh2#
您的Express后台服务器似乎缺少**CORS(跨域资源共享)**配置。这可能是你的请求没有通过的原因。
首先在后端服务器上运行
npm i cors
。然后将以下内容添加到主
index.js
文件中:更多信息可以在here中找到。
如果这不起作用,您可能需要检查AWS中的配置或允许的域名中的任何拼写错误,例如未插入协议(http/https)。