【问题标题】:Node JS same request works on localhost but not on aws ec2 server节点 JS 相同的请求适用于 localhost 但不适用于 aws ec2 服务器
【发布时间】:2017-09-07 02:00:22
【问题描述】:

我是后端编程的新手,在以用户身份登录时遇到 GET 请求检索数据的问题。

我的本​​地主机服务器上的数据正常,状态码为 200,但相同的 GET 请求不会从 aws EC2 上的服务器返回数据。

我一直在寻找解决方案,但似乎我错过了一些我无法理解的重要信息。

localhost dev server ec2 aws server

router.get('/', function (req, res) {
    if (req.session.userId) {
        return res.sendFile(path.join(__dirname + '/../public/index.html'))
    }
    return res.sendFile(path.join(__dirname + '/../public/login.html'))
})

router.get('/data', function (req, res) {
    User.findById(req.session.userId)
        .exec(function (error, user) {
            res.send(user)
        }
    );
})

只有 /data 请求表现得很奇怪。

【问题讨论】:

  • 在ec2截图中,错误是:Uncaught TypeError: Cannot read property 'map' of undefined in app.js line 41。你能提供那个代码吗?
  • 别担心,这无关。这是其他一些前端问题
  • 对于 ec2 服务器,/data 响应为 304 Modified。这很正常——GET /data 请求之前发送过,重新验证后,服务器说“它没有改变,只是使用浏览器中的缓存”。你能解释一下“没有得到服务器的响应”是什么意思吗?
  • 如果你看第一张图片,我收到了一些数据,但第二张图片没有。这就是问题
  • 好吧,我相信数据是返回的(从缓存中)。它没有打印在控制台中,因为抛出了一个未捕获的错误,这导致前端进入不可预测的状态。你能修复那个错误并重试吗?

标签: node.js http express amazon-ec2


【解决方案1】:

我通过将此行添加到我的 axios 请求 withCredentials: true 来修复它

【讨论】:

    猜你喜欢
    • 2020-09-03
    • 2012-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2014-04-19
    • 2019-09-09
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多