【问题标题】:How do you define POST parameters using inputs in the request body?如何使用请求正文中的输入定义 POST 参数?
【发布时间】:2012-12-18 06:29:25
【问题描述】:

我正在向 RESTFUL api 发出 POST 请求,我可以传递参数的唯一方法是将它们添加到表单“action”参数中使用的 URL 中。一旦我将这些参数放入表单的正文组件中,请求就不再有效。我的问题是如何使用表单中的输入来定义请求参数,而不是将参数嵌入到操作 URL 中?

我确实注意到,当我提交请求时,请求正文参数会显示,但实际请求失败,说参数不存在。

这里是 HTML:

<form target="hiddenIframe" method="POST" action="/rest/bpm/wle/v1/process/5853?action=addDocument&name=test123&docType=file&parts=none&accept=application/json&override-content-type=text/plain" enctype="multipart/form-data">
  <input type="text" name="instanceId" value="5823" />
  <input type="text" name="name" value="myTestQ1" />
  <input type="text" name="docType" value="file" />
  <input id="myFileName" type="file" name="data" />
  <input type="submit"/>
</form>
<iframe name="hiddenIframe" id="hiddenIframe" style="display: none;" />

如您所见,表单标签中的操作很长且不是动态的...我希望只有“/rest/bpm/wle/v1/process/”,但是当我上传时失败。

【问题讨论】:

    标签: file rest post upload action


    【解决方案1】:

    我会使用一些 Javascript。向所有必填输入字段添加 onchange。您将调用的更改方法可以使用表单字段中的新数据更新您的操作网址。

    类似:

    <input type="text" name="instanceId" value="5823" onchange="updateInstanceID()" id="instanceid" />
    action="/rest/bpm/wle/v1/process/5853?action=addDocument&name=test123&docType=file&parts=none&accept=application/json&override-content-type=text/plain"
    

    现在,您的 Javascript 应该具有该方法。

    function updateInstanceID() {
        var val = document.getElementById("instanceid").value;
        var form = document.forms[0]; // assuming only one form on the page.
        ....
    }
    

    现在您可以访问您的 form.action 字段并进行相应的更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      • 2018-11-19
      相关资源
      最近更新 更多