通过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(); 

在服务器端,您应该能够通过检查var1var2来获取您发送的数据,如何做到这一点取决于您使用的服务器端语言。

简短的回答:不。 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
  • 您可以将nameJoinervariables更改为_以外的内容,以免与您的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" }); }); }); 

请参阅https://github.com/mgalante/jquery.redirect

您可以使用GET而不是传递,但不要将此方法用于重要的值,

 function passIDto(IDval){ window.location.href = "CustomerBasket.php?oridd=" + IDval ; } 

在CustomerBasket.php中

 <?php $value = $_GET["oridd"]; echo $value; ?>