nginx上Cloudflare、ExpressJS和ReactJS的CORS错误
在通过Cloudflare切换到域名后,我一直无法克服CORS错误。我似乎无法让后端api像nginx上Cloudflare、ExpressJS和ReactJS的CORS错误,reactjs,express,nginx,cors,cloudflare,Reactjs,Express,Nginx,Cors,Cloudflare,在通过Cloudflare切换到域名后,我一直无法克服CORS错误。我似乎无法让后端api像https://www.my_domain.com/api 我所做的: 已应用nginx解决方案并重新启动nginx 在cloudflare中,我使用三个A记录更新了DNS管理:*、www和 在cloudflare中,始终使用HTTPS设置为打开 ExpressJS已启用corslibrary 下面应用的nginx解决方案… 注意:我已在端口3000上运行React。在浏览器中访问域名时显示React
https://www.my_domain.com/api
我所做的:
cors
library- 下面应用的nginx解决方案… 注意:我已在端口3000上运行React。在浏览器中访问域名时显示React李>
- 我用来测试和重启nginx的命令:
sudo nginx-t&&sudo systemctl重新启动nginx
- 在cloudflare DNS管理中…
- 我的后端.env文件:
- 我的前端react.env文件
http://:8000/api
的形式发送,而不是像预期的那样以https:/api
的形式发送
另外,我今天刚刚更改了域名
尽管上面有这些设置,但当我尝试登录时,我看到由于cors错误,请求被阻止
什么可能导致cors错误?遵循本教程 结果发现了这些指令 在我的linux终端上运行这些命令(来自certbot指令)
sudo snap install core; sudo snap refresh core; sudo apt-get remove certbot; sudo snap install --classic certbot; sudo ln -s /snap/bin/certbot /usr/bin/certbot; sudo certbot --nginx
此时出现了输入域名的提示。所以,我像这样进入我的域名
my_domain.com www.my_domain.com
按照说明,我随后测试了续费(您需要每年续费一次,但这些将被放入cron中,以便*希望自动续费)
sudo certbot续订--试运行
域api工作正常,但react应用程序尚未显示,这表明Cloudflare中可能存在一些问题
之后,我让我的网站在浏览器中显示如下
完成上述所有操作后,域中显示了我的react应用程序,该应用程序完全使用api,没有CORS错误。浏览器在devtools控制台中记录的确切错误消息是什么?
A record, Name: *, Content: <server_ip>, TTL: Auto, Proxy status: DNS only
A record, Name: <my_domain_name>, Content: <server_ip>, TTL: Auto, Proxy status: Proxied
A record, Name: www, Content: <server_ip>, TTL: Auto, Proxy status: Proxied
const express = require("express");
const cors = require("cors");
require('dotenv').config()
const app = express();
if (process.env.NODE_ENV === 'production') {
app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}
NODE_ENV=production
CLIENT_URL=http://my_domain.com
CLIENT_URL=/api
sudo snap install core; sudo snap refresh core; sudo apt-get remove certbot; sudo snap install --classic certbot; sudo ln -s /snap/bin/certbot /usr/bin/certbot; sudo certbot --nginx