【问题标题】:Passing GET data to a POST request将 GET 数据传递给 POST 请求
【发布时间】:2012-04-27 01:05:42
【问题描述】:

我将 node.js 与 Express 一起使用。我有一个页面 /blah?name=john 生成一个带有表单的页面。当您单击表单提交按钮时,它将表单数据传递给 POST 请求。但是,我希望发布请求的一部分是来自生成页面的 GET 请求的 ?name=john 数据。如何将 name 变量与提交的表单数据一起转发到 POST 请求?

【问题讨论】:

    标签: javascript html node.js express


    【解决方案1】:

    将查询字符串动态添加到一些隐藏的输入中。这样您的表单将如下所示:

    <form action="/submit" method="post">
        <input type="text" placeholder="Some text here">
        <!-- Hidden input -->
        <input type="hidden" name="name" value="john">
        <input type="submit" value="submit">
    </form>
    

    您应该根据 GET 参数在服务器上生成此隐藏输入 :)

    【讨论】:

      【解决方案2】:

      在 GET 请求期间,将表单上的 ACTION 设置为“MyPostPage.htm”+ query_string。当通过提交按钮发布表单时,它将使用表单的 ACTION 属性,该属性具有初始 GET 请求中添加的查询字符串信息。

      <HTML>
          <FORM ACTION="http://example.microsoft.com/sample.asp?name='fred'&age=27" METHOD="POST">
              Enter your name: <INPUT NAME="FName"><BR>
              Favorite Ice Cream Flavor:
              <SELECT NAME="Flavor">
                  <OPTION VALUE="Chocolate">Chocolate
                  <OPTION VALUE="Strawberry">Strawberry
                  <OPTION VALUE="Vanilla" SELECTED>Vanilla
              </SELECT>
              <P><INPUT TYPE=SUBMIT>
          </FORM>
      </HTML>
      

      【讨论】:

      • 正是克里斯所说的。所以你会以&lt;form name="input" action="/blah?name=john" method="post"&gt; 的形式执行此操作
      • 这听起来很有希望,只是现在表单的操作设置为action="/submit"所以我希望它是action="/submit+query_string"吗?我不知道您可以在 POST 请求中使用类似的查询字符串。
      • 您不能同时检索 POST 和 GET。
      • @FlorianMargaine - 不知道你的意思,方法说帖子。您当然可以将表单发布到包含查询字符串参数的 URL。
      • 是的,但我认为您在发送 POST 请求时无法检索 GET 参数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 2020-06-16
      • 2015-08-27
      • 2011-12-15
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      相关资源
      最近更新 更多