gpt4 book ai didi

node.js - axios.get 不返回数据

转载 作者:太空宇宙 更新时间:2023-11-03 22:19:54 26 4
gpt4 key购买 nike

我使用 React、Express 和 Passport 来管理身份验证流程。

我最近将前端和后端分成了 Heroku 中的两个应用程序,并且我正在尝试连接两侧(在服务器文件夹内有客户端文件夹之前)。在本地测试时,我的后端在登录访问 http://localhost:5000/auth/current_user 后工作。 ,但是当我使用 axios 并从 redux 操作中调用时,它不会返回任何响应。

这是我的正面代码:

export const fetchUser = () => async dispatch => {
try {
const res = await axios.get(
process.env.REACT_APP_API_URL + "/auth/current_user"
);
console.log("fetchUser: ", res);
dispatch({ type: FETCH_USER, payload: res.data });
} catch (e) {
if (e.response) {
console.log("fetchUser:", e.response);
}
}
};

当我登录后端查看是否有 session 时,我会收到 {} 作为响应。有时,我确实会随机获得 Passport 信息 { Passport: { user: '5da9b04eb086af53103ec4e9' } }

  app.get("/auth/current_user", (req, res) => {
console.log(req.session);
res.send(req.user);
});

来自 Chrome 的 header 如下(没有任何响应...): Chrome headers

如果有人能帮助我那就太好了!

提前致谢!

最佳答案

我终于找到了问题的解决方案...似乎是 CORS 问题。虽然不太明白,但是会研究一下。

因此,部分解决方案就在这个答案中:Express + Passport.js: req.user is UNDEFINED

这样,cookie 就会出现在我的控制台日志的前端。为了充分发挥作用,我必须将原始域添加到 cors 中。

总之,我在服务器端添加了我的index.js:

app.use(
cors({
methods: ["GET", "POST"],
credentials: true,
origin: "http://localhost:3000"
})
);

这个配置到我的axios get:

    const config = {
withCredentials: true,
headers: {
"Content-Type": "application/json"
}
};

关于node.js - axios.get 不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58453373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com