同时发送POST和GET格式

问题描述 投票:11回答:5

我需要制作一个同时发送POST和GET请求的表单(由于IE和iframe中的某些错误,您该怎么办?

正在发送的数据不是超级安全的,因此可以通过GET设置它无关紧要,只需确保同时设置了这两种方法。

感谢您的帮助!

php html http-post http-get
5个回答
30
投票

简单:只需在URL表单中指定GET数据。

<form method="POST" action="form.php?a=1&b=2&c=3">

但是,非常仔细地检查接收脚本中的数据使用方式。不要使用$_REQUEST-而是根据您的确切需求并按需要的优先级顺序解析$_GET$_POST


9
投票

使表单执行常规的POST并使用JavaScript来复制查询字符串中的值:

HTML:

<form id="myform" method="post" action="..." onsubmit="process()">
  ...
</form>

JavaScript:

function process() {
  var form = document.getElementById('myform');
  var elements = form.elements;
  var values = [];

  for (var i = 0; i < elements.length; i++)
    values.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));

  form.action += '?' + values.join('&');
}

4
投票

不确定您要解决的错误,但是可以使用jQuery轻松修改表单的操作以包含发布的值:

脚本:

function setAction() {
    $("#myform").attr("action", "/path/to/script/?" + $("#myform").serialize());
}

html:

<form id="myform" action="/path/to/script/" method="post" onsubmit="setAction()">

2
投票

表单应设置为在URL中获取内容

<form method="post" action="http://www.yourpage.php?firstparam=1&sec=2">
.
.
</form>

0
投票

如果您需要动态创建的URL。您可以使用此HTML示例。 GET字段采用分隔形式。在提交POST表单之前,URL是从GET表单生成的。

<form id="formGET">
    email: <input name="email" value="[email protected]"/>
</form>
<form id="formPOST" method="post" onsubmit="this.action='/api/Account?'+Array.prototype.slice.call(formGET.elements).map(function(val){return val.name + '=' + val.value}).join('&');">
    mobile: <input name="mobile" value="9999999999" /><br />
    <button>POST</button>
</form>
© www.soinside.com 2019 - 2024. All rights reserved.