通过window.location.href传递发布数据
当使用window.location.href,我想通过POST数据到我打开的新页面。 这是可能的使用JavaScript和jQuery?
使用window.location.href
是不可能发送POST请求。
你所要做的就是设置一个包含数据字段的form
标签,将表单的action
属性设置为URL,将method
属性设置为POST,然后在form
标签上调用submit
方法。
添加一个表单到你的HTML,如下所示:
<form style="display: hidden" action="/the/url" method="POST" id="form"> <input type="hidden" id="var1" name="var1" value=""/> <input type="hidden" id="var2" name="var2" value=""/> </form>
并使用JQuery来填充这些值(当然,您也可以使用JavaScript来做类似的事情)
$("#var1").val(value1); $("#var2").val(value2);
然后最后提交表格
$("#form").submit();
在服务器端,您应该能够通过检查var1
和var2
来获取您发送的数据,如何做到这一点取决于您使用的服务器端语言。
简短的回答:不。 window.location.href
不能传递POST数据。
有些更令人满意的答案:您可以使用此function克隆所有的表单数据并提交。
var submitMe = document.createElement("form"); submitMe.action = "YOUR_URL_HERE"; // Remember to change me submitMe.method = "post"; submitMe.enctype = "multipart/form-data"; var nameJoiner = "_"; // ^ The string used to join form name and input name // so that you can differentiate between forms when // processing the data server-side. submitMe.importFields = function(form){ for(k in form.elements){ if(input = form.elements[k]){ if(input.type!="submit"&& (input.nodeName=="INPUT" ||input.nodeName=="TEXTAREA" ||input.nodeName=="BUTTON" ||input.nodeName=="SELECT") ){ var output = input.cloneNode(true); output.name = form.name + nameJoiner + input.name; this.appendChild(output); } } } }
- 做
submitMe.importFields(form_element);
为你想要提交的三种forms中的每一种。 - 这个函数会将每个表单的名称添加到它的子input的名字(如果你在
<form name="login">
有一个<input name="email">
<form name="login">
,提交的名字将是login_name
。 - 您可以将
nameJoiner
variables更改为_
以外的内容,以免与您的input命名scheme冲突。 - 一旦你导入了所有必要的表单,请
submitMe.submit();
就这么简单
$.post( "som_page.php", { data1: value1 , data2: value2 .... } ).done(function( data ) { $( "body" ).html(data);});
我必须解决这个问题,使我的应用程序的屏幕locking,我必须传递敏感数据作为用户和他工作的url。 然后创build一个执行这个代码的函数
使用这个文件:“jquery.redirect.js”
$("#btn_id").click(function(){ $.redirect(http://localhost/test/test1.php, { user_name: "khan", city : "Meerut", country : "country" }); }); });
您可以使用GET而不是传递,但不要将此方法用于重要的值,
function passIDto(IDval){ window.location.href = "CustomerBasket.php?oridd=" + IDval ; }
在CustomerBasket.php中
<?php $value = $_GET["oridd"]; echo $value; ?>