0

我正在向 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/”,但是当我上传失败时。

4

1 回答 1

0

我会使用一些Javascript。向所有必填输入字段添加 onchange。您将调用的更改方法可以使用表单字段中的新数据更新您的操作 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.
    ....
}

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

于 2013-12-07T00:35:50.977 回答