【问题标题】:Get Data from POST request on client side从客户端的 POST 请求中获取数据
【发布时间】:2017-08-15 04:36:37
【问题描述】:

我从我的反应前端提出了一个表单发布请求。在我的快速路线中,我处理它,并将数据发送到浏览器,如下所示:

app.post("/api/fetchuser", async (req, res) => {
  // Doing some stuff here

  res.send(req.body.user);
});

我的问题是:我怎样才能从这个 POST 请求路由中将数据返回到我的客户端?以前,我使用axios.get(...) 以类似的方式检索app.get(...) 路由上的数据,但是,这是一个POST 路由。我该如何解决这个问题?

【问题讨论】:

  • 你试过axios.post吗?
  • 我阅读了它,但我没有将更多数据发布到后端。我想从发布路线中检索数据。我可以这样做吗?如果是这样,您可以发布答案:)
  • 如果您不发布数据,那么您必须在后端创建一个获取路由?
  • 否则你将正文作为空发送然后发布。
  • 如何编写查询然后让 sql 字符串以 'SELECT * ... RETURNING ID;' 之类的结尾???

标签: node.js reactjs express react-router react-redux


【解决方案1】:

只需执行axios.post 请求即可。请参阅axios documentation 的执行 POST 请求部分。

编辑:是的,您还可以通过POST 请求检索数据。您不必在执行请求时向服务器发布任何数据。

【讨论】:

  • 谢谢!我没有意识到这一点。另外,这是否意味着我必须执行手动发布请求,而不是使用
    。如果是这样,我将如何通过 form 方法实现它?
  • 好吧,您不必这样做 - 您可以。两种方法都有效。不同之处在于,在第一种情况下,您只需使用良好的旧 HTML 表单和同步请求(页面将重新加载)发布数据。如果您想使用 Axios 将表单数据 POST 到服务器,您可以将其连接到您的表单并发出异步请求(页面不会重新加载,想想 Ajax)。
  • 有很多方法可以做到这一点。基本上,您需要在 javascript 中执行 3 个主要步骤:1. 阻止表单提交,2. 在表单提交时,而不是让请求从表单中收集所有数据,以及 3. 使用 Axios 之类的东西发出请求。跨度>
【解决方案2】:

axios.post('/api/fetchuser/',{}) .then(res => console.log(res.data));

【讨论】:

  • 我可以看到这个问题。由于我通过我的表单方法发布数据。当我通过 axios 执行另一个发布请求时,将无法访问相同的路由数据。我只是在路线上发布一个空对象。这不是一个 .get 路由,无论页面是否重新加载,数据都将保留在页面上。发布路线并非如此,一旦刷新页面,数据就会消失
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多