我是 jQuery 新手,我正在寻找一种通过 POST 方法将变量传递到新页面而不使用表单的方法。
使用 GET 很简单:
$("#my_link").click(function(){
var name = 'John';
var url = "my_new_page.php?name=" +name;
window.open(url);
});
我怎样才能用 POST 做同样的事情?
我尝试了 .load()、.post() 和 .ajax(),但没有奏效。
可能吗?
解决方案:
人们将我的问题标记为重复,但这并没有解决我的问题。感谢 SLaks,看来这<form>
是唯一的方法。
我使这个功能很好用:
function post2blank(url,myarray)
{ var myform = '<form id="temporary_form" action="' +url+ '" target="_blank" method="POST">';
$.each(myarray, function( key, value ){myform += '<input name="' +key+ '" value="' +value+ '"/>';});
myform += '</form>';
$(myform).appendTo('body').submit();
$('#temporary_form').remove();
}
它创建一个<form>
id="temporary_form" 并将其附加到<body>
. 将“myarray”上的每个变量提交到“result.php”后,它会删除表单。
这是一个如何调用的示例:
<a onclick="var myArray = { name : 'John' , age : '45'}; post2blank('result.php' , myArray);">POST</a>
我在 Chrome、IE10 和 Firefox for android 上进行了测试。希望它可以帮助别人。