0

我是 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 上进行了测试。希望它可以帮助别人。

4

1 回答 1

2

您需要创建一个隐藏表单并调用submit().

<form>标签是使用 POST 导航到页面的唯一方法。

于 2013-06-23T12:09:46.610 回答