Node.js localhost 服务器无法与我的 php localhost 保持会话

Posted

技术标签:

【中文标题】Node.js localhost 服务器无法与我的 php localhost 保持会话【英文标题】:Node.js localhost server cant mentain session with my php localhost 【发布时间】:2021-12-31 03:35:39 【问题描述】:

我的 ReactJS 网站在“localhost:3000”上运行“npm start”。我在“localhost”上有我的 XAMPP php 服务器,我的 api 用于后端。我与我的 php 服务器的“获取”功能进行通信,我发现一个问题 - 每次我发出请求时,我都会看到创建了新会话 - 我无法维护任何会话信息,如登录等。

如果我构建我的应用程序并将其放在 XAMPP 服务器上 - 一切正常,React 网站正常工作,会话仍然存在,但不在这两个 localhost 之间,不在我的开发阶段。

谁能告诉我我做错了什么?我不想在每次想检查它是否有效时都建立我的网站,也不想切换到任何其他后端技术。

谢谢

【问题讨论】:

这可能是 CORS 问题:我相信不同的端口被认为是不同的来源,因此您的会话状态(cookie?)不会被共享。最简单的解决方案可能是为您的 localhost:3000 设置 reverse proxy in apache。这样一来,一切都在同一个端口上。 【参考方案1】:

我假设您使用的是“Webpack”。为了在开发模式下规避这个问题 - 你可以使用 Webpack 的Proxy 功能。

当您有一个单独的 API 后端开发服务器并且您希望在同一个域上发送 API 请求时,代理某些 URL 会很有用。

最低配置很简单(假设后端在 80 端口):

"proxy": "http://localhost:80/",

【讨论】:

以上是关于Node.js localhost 服务器无法与我的 php localhost 保持会话的主要内容,如果未能解决你的问题,请参考以下文章

Docker - Node.js + MongoDB - “错误:无法连接到 [localhost:27017]”

无法连接到 mySQL 服务器,Windows 10/Node.js

生成 SSL 密钥以使用 node.js

无法从 Flutter Web 上的 localhost API(node js express)获取 http 请求的响应 [重复]

静态文件,带有 Node.js 和 Express 的样式表

node.js 代码在浏览器中使用 localhost URL 打开页面