【问题标题】:How to redirect a user based on a returned HTML form response?如何根据返回的 HTML 表单响应重定向用户?
【发布时间】:2021-11-13 07:49:45
【问题描述】:

我有一个向 Nelify 无服务器函数提交 POST 请求的 HTML 表单。无服务器函数进行一些处理,然后返回一个 URL。

我正在使用 HTML 表单来调用 Nelify 无服务器函数,因为使用 JavaScript fetch 会引发 CORS 错误。 HTML 表单没有。

表单的 HTML 如下所示:

<html>
  <head>
  </head>
  <body>
    <form action="https://www.example.com/.netlify/functions/stripe-create-checkout-session" method="POST">
      <input type="hidden" name="priceId" value="price_1JZS_EXAMPLE" />
      <button id="stripe-btn" type="submit">Checkout Test Starter Plan</button>
    </form>
  </body>
</html>

HTML 表单的屏幕截图(只有按钮可见):

当收到响应时,页面会原地更改,表单的 HTML 会更改为如下所示:

<html>
  <body>
    <pre>{"url":"https://checkout.stripe.com/pay/cs_test_a1XZXYz2N8iS46oPtgZUsCFqe434u1c76D5MQrGkNeIW0yjEHbs0oYAx3h#fidkdWxOYHwnPyd1blpxYHZxWjA0T18xUTxGNGFBQjNSZEhXcX0xQH9QcExWRGxwNVRoT39gfDA0f1d3UUM3f0ByQT12Z0IyfXBKbTVVb05jUnFnNlxqf3Y9bl9XMUJWPWlqanR3RD0wVVRUNTU0UH13TDBHRCcpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"}
    </pre>
  </body>
</html>

这是页面上的截图:

说了这么多,我有两个问题:

  1. 如何在响应中获取url 并将用户重定向到该页面?我知道这需要 JavaScipt,但我不确定应该是什么。
  2. 我不希望在页面上呈现响应。如何阻止它向用户显示?也许重定向会隐藏这一点?

【问题讨论】:

标签: javascript html forms


【解决方案1】:

如果您只想获取 URL,请按照此处的 w3schools 教程进行操作

https://www.w3schools.com/jsref/prop_doc_url.asp

如果你想在抓取 URL 后重定向,那么这里是教程。

https://www.w3schools.com/howto/howto_js_redirect_webpage.asp

如果我们想要 url 作为响应,请参阅这个。

Get response of url in nodejs (express/http)

【讨论】:

  • 将url返回到表单。它不是文档 URL。所以我不认为像你建议的那样window.location.href = document.URL; 会起作用。还有如何触发该重定向的问题。我需要等待表单响应然后重定向。 node.js 的最后一个链接也不是必需的,因为我已经设置了 nodejs 以将 URL 返回到表单,如屏幕截图所示。但仍然很想听听您的任何其他想法!
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • @TinyTiger 好的,我理解您的问题,我的方法是使用 express js,如果您对 express 感到满意,请回复我将编辑我的答案。而且你对表格的回应也是一个承诺,不是吗?
猜你喜欢
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2019-02-06
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
相关资源
最近更新 更多