如何解决导致nodejs ERR_CONNECTION_RESET的Chrome cookie,当我必须存储cookie



目前正在制作一个MERN应用程序,所以我正在使用Node。我将用户的信息存储在本地存储中,因此当他们刷新页面时,他们仍然登录。问题是,如果我对后端进行任何 api 调用,它将导致 net::ERR_CONNECTION_RESET。同样奇怪的是,错误消息看起来像这样:GET http://localhost:3000/api/roadmap/getAllRoadmapsButThumbnails net::ERR_CONNECTION_RESET,当 localhost:5000 是我的后端端口,但它显示 3000,我的客户端端口。

当用户注销时,我的 api 调用非常好,因此本地存储中没有任何内容。

有没有人遇到过类似的问题,有什么见解?

我尝试过的:

  1. 将代理从"http://localhost:5000"更改为

    "proxy": { "secure": true, "target": { "host": "https://localhost", "port": 5000 } },

  2. 在 axios 请求中使用完整路径,这导致了 CORS 错误,我没有继续使 CORS 工作,因为在部署网站时使用完整路径可能会导致奇怪的事情,并且修复代理路由似乎是优先事项

我的更多代码

服务器.js:

const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const multer = require("multer");
const path = require("path");
const passport = require("passport");
const users = require("./routes/api/users");
const roadmap = require("./routes/api/roadmap");
const app = express();
// Bodyparser middleware
app.use(
bodyParser.urlencoded({
extended: false
})
);
app.use(bodyParser.json());
// DB Config
const db = require("./config/keys").mongoURI;
// Connect to MongoDB
mongoose
.connect(
db,
{ useNewUrlParser: true }
)
.then(() => console.log("MongoDB successfully connected"))
.catch(err => console.log(err));
// Passport middleware
app.use(passport.initialize());
// Passport config
require("./config/passport")(passport);
// Routes
app.use("/api/roadmap", roadmap);
app.use("/api/users", users);
const port = process.env.PORT || 5000; // process.env.port is Heroku's port if you choose to deploy the app there

现在一切都是http,我在上一个网站中没有收到这样的错误,该网站也使用了存储在本地存储中的jwt,那是大约5个月前

编辑

我尝试的新事物:

  1. 手动配置代理
  2. 在没有证书的情况下启动镶边

我的情况的解决方案:使用 fetch 而不是 axios。我没有发布任何客户端代码,但我曾经使用以下命令获取数据:

axios.get("/api/roadmap/getAllRoadmapsThumbnails")

现在,只需执行以下操作:

fetch("/api/roadmap/getAllRoadmapsButThumbnails", { method: "GET" })

为什么它有效。我不知道,也许如果我在 axios 中放置一些标题,axios 也会正常运行。仍然有一些奇怪的事情,在控制台中您可以看到获取日志(您可能需要选中控制台中的"日志XMLHttpRequests"复选框),它显示:

Fetch finished loading: GET "http://localhost:3000/api/roadmap/getAllRoadmapsButThumbnails".

虽然我的后端是 5000,所以它应该是本地主机:5000/api/...


如果您不熟悉此问题,并且遇到从ERR_CONNECTION_RESET到FAILED_TO_LOAD_RESOURCES到其他 ERR 的问题,

试试这些:

  1. 尝试使用提取。最好定义标头,例如{method: "POST", headers: {"Content-Type" : "application/json"}

  2. 关闭 Chrome 扩展程序(使用无痕会自动停用扩展程序)

  3. 对于 CORS 错误,请下载npm install cors然后在您的服务器.js中执行 app.use(cors()),根据以下内容:https://github.com/axios/axios/issues/1414

  4. 手动设置代理并启动 chrome 忽略证书

相关内容

最新更新