【问题标题】:Page not getting rendered via Express when using post (NodeJS)使用 post (NodeJS) 时页面未通过 Express 呈现
【发布时间】:2011-11-30 14:23:29
【问题描述】:

我正在使用 Express v.2.4.6 (Node.js - v.0.6.2)。 一旦调用 POST(而不是 GET),我试图呈现(或重定向到)新页面。调用 GET 时,我能够呈现/重定向。但是,当在 Express 中调用 POST 时,我似乎无法呈现页面。我不确定这是否可能,尽管 Express 网站上的指南确实提到了一个示例,在该示例中,您可以在调用 POST 后重定向。 相关代码如下(客户端以 JSON 格式发送表单)。我可以在 Node.j 中成功解析 JSON 消息。

示例路线:

app.post('/signup', function(req, res){
res.redirect('index');
//res.render('index');
});

不会引发异常,但索引页面不会被呈现或重定向。 任何反馈将不胜感激。

【问题讨论】:

    标签: post node.js redirect render express


    【解决方案1】:

    也许你从客户端从$.ajax 调用它 如果您从服务器端调用它,它会很好地工作

    请参考这个问题。 Express.js Won't Render in Post Action

    【讨论】:

    • 这是在服务器上而不是在客户端上-除非我错过了,否则我在您的示例中没有看到任何“重定向”调用。在上面提到的情况下,我实际上不得不依赖客户端重定向(不像我过早添加的评论)。
    • 嗯,我应该将代码添加到我的示例中。我是从客户端打电话的,我只是没有复制代码。嗯,如果可能的话,您可能需要考虑将不依赖于 $.ajax 的功能(如果可能)。如果没有,以后有什么我会告诉你的
    • 也许你从服务器端返回 url 并执行 'location.href = url;'正如此链接中建议的那样stackoverflow.com/questions/9789418/…
    【解决方案2】:

    res.redirect('/') 很可能是你想要的,但你可以在任何路由中渲染,重定向只是大多数人使用的约定

    【讨论】:

    • 感谢您的回复 - 非常感谢。也许我问问题的方式不正确。问题是,一旦调用 post,我似乎无法呈现或重定向到任何页面。我已经尝试过 res.render 和 res.redirect。重定向/渲染之后的代码被调用并且我在服务器端没有看到任何异常 - 但是,新页面没有在 firefox/chrome 中呈现。对此问题的任何建议/见解将不胜感激。再次感谢您的回复。
    • 可能 POST 路由没问题,但您的 app.get('/index')... 设置不正确。您是否尝试过在 Chrome 检查器中或通过 curl -i 查看响应标头?您应该会看到 302 重定向到“index”,但您可能需要“/index”。发布更大的代码 sn-p 广告,我们可以帮助您。
    • 谢谢(感谢 TJ 和彼得)- 非常感谢。我能够使用新的(发布)路线呈现新页面。我仍在尝试找出导致原始路线出现问题的原因。
    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    相关资源
    最近更新 更多