HTTPS conflict with HTTP



HTTPS与HTTP冲突

我在React和NODEjs上做了我的第一个全栈项目,并将它部署在netlify上。我的后端服务器运行在HTTP localhost上。这里有一个问题:我的应用程序可以在我的Mac上运行,但在其他浏览器和计算机上不能正常运行。

其他计算机可以下载index.js(显示注册和登录页面),CORS似乎没有问题,但身份验证不起作用。

Safari日志错误:

[blocked] https://MYAPP.netlify.appwas页面不允许显示来自http://localhost:3500/register的不安全内容。

不允许请求资源

由于访问控制检查,XMLHttpRequest无法加载http://localhost:3500/register。

我不明白为什么这个应用程序在我的MAC上工作,但是在其他计算机上无法找到解决此HTTPS - HTTP冲突的答案

我试图在CORS中找到一个问题,但看起来CORS是可以的。此外,我尝试用HTPPS重写服务器,但它没有工作。

我从未与netflix合作过,所以我可能错了,但我怀疑你的问题与netflix没有直接关系。

Safari错误消息表明您的前端试图直接与localhost对话。"本地主机"是"正在进行连接尝试的计算机"的别名。正常情况下。这意味着当有人运行你的前端时,浏览器会尝试与运行浏览器的同一台计算机上运行的后端进行通信。

这适用于您的计算机在Chrome,因为你可能有后端运行在您的计算机上进行测试。Safari只是抱怨前端是通过HTTPS加载的,但却试图与非HTTPS服务器对话。这并不是说它不能与后端通信,而是说它甚至不会尝试。

如果我是对的,你关闭了你电脑的后端,它也会开始在你的电脑上失败,甚至在Chrome上。

如果这是问题,解决方案可以是两件事之一:你可以在某个地方运行后端,它有一个域名/ip地址,每个人都可以连接,或者你需要为你的后端运行一个代理,它也符合这些条件,并有一种方式将请求传递到你的完整后端运行的地方。

你需要找到一种方法来运行你的后端以外的地方,而不是你自己的计算机或有其他地方的代理请求到你的计算机,然后被中继到本地主机地址。你怎么做将取决于你在最初的问题中没有说明的事情。

最新更新