如何使用请求体中的输入定义POST参数



我正在向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/whole/v1/process/"在那里,但是当我做上传失败。

我会使用一些Javascript。向所有强制输入字段添加onchange。你将调用的change方法可以用表单字段中的新数据更新action url。

类似:

<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.
    ....
}

现在您可以访问表单了。

相关内容

  • 没有找到相关文章