axios.get不返回数据

时间:2019-10-18 14:55:18

标签: node.js express axios passport.js

我正在使用反应,快递和通行证来管理身份验证流程。

最近,我在Heroku中将前端和后端分离为两个应用程序,并且试图将双方连接起来(之前在服务器文件夹中有一个client文件夹)。在本地进行测试时,我的后端在登录http://localhost:5000/auth/current_user后才能工作,但是当我使用axios并通过redux操作进行调用时,它不会返回任何响应。

这是我的正面代码:

icd10

当我登录后端查看是否有会话时,我得到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); } } }; 作为响应。有时候,我会随机获得护照信息{}

{ passport: { user: '5da9b04eb086af53103ec4e9' } }

来自Chrome的标题如下(无任何响应...): Chrome headers

如果有人可以帮助我,那将很棒!

谢谢!

2 个答案:

答案 0 :(得分:0)

我终于找到了解决该问题的方法……似乎是CORS问题。我不太清楚,但是会研究。

所以,部分地,解决方案是在以下答案中:Express + Passport.js: req.user is UNDEFINED

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

最后,我在服务器端添加了我的index.js:

#include "fortran.h"  // Not a system include for me, so changed to " "

real function f() CODE
    return 0.0;
endfunction

program(main)
    IF 3 == 3 THEN
        PRINT(*) "Your PC is fine.";
    ELSEIF 3 == 4 THEN
        PRINT(*) "Your PC is broken.";
    ELSE
        PRINT(*) "Your PC is trash.";
    ENDIF

    write(*, "(I)") 5);
END

我的axios的配置如下:

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

答案 1 :(得分:0)

除了所有这些,您还可以像这样使用cors npm。

npm install --save cors

var express = require('express');
var cors = require('cors');
var app = express();
app.use(cors());
/* your regular routes go here */