【问题标题】:Render view as result of POST request in Express在 Express 中作为 POST 请求的结果呈现视图
【发布时间】:2018-06-25 18:42:03
【问题描述】:

我有一个与条带集成的基本节点应用程序。客户端 javascript 生成一个令牌,该令牌在 POST 请求中发送到服务器。然后服务器向条带 API 发送进行支付的令牌。我想将用户重定向到显示一些信息的页面,例如支付成功或支付错误。

当我将 res.render("/charge", {<some-JSON>}); 放入处理 POST 请求的代码中时,它会发送页面 /charge 作为对 POST 请求的响应。有没有办法向用户发送页面作为响应,而不是向 POST 请求发送响应?

节点片段:

app.post(req, res) {
    // Some Code
}

【问题讨论】:

  • 不确定我是否理解,但如果您不想向用户发送 /charge 页面而只发回 post 请求的内容,请使用 res.json(yourObject);
  • 我想做的是与您的回复完全相反:向用户发送 /charge 页面而不是 json
  • 你是如何声明你的端点的? app.post()?
  • 正确。我会将其添加到我的问题中。
  • 如果您想通过浏览器 (GET) 和 POST 数据访问端点,请改用 app.use()

标签: node.js express post get


【解决方案1】:

根据我从您的帖子和 cmets 中收集到的信息。您正在寻找一种在您的网页中显示 Stripe 响应数据的方法。

不要使用客户端 JavaScript 执行传统的 AJAX 请求,而是使用表单将数据提交到服务器端。

<form action="/stripe" method="post">
  <input type="text" value="whatever" name="batman">
  <button type="submit">Pay</button>
</form>

在您的服务器端,以app.use('/stripe') 为例,创建一个端点,但该端点必须与您在action="" 属性中的值相匹配。然后简单地呈现带有条带响应的页面。

app.use('/stripe', function(req, res) {
  // whatever code
  res.render('/charge', {JS OBJECT});
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多