jQuery通过POST将变量传递给新页面而没有表单

时间:2013-06-23 12:07:39

标签: javascript jquery

我是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(),但它没有用。

有可能吗?


SOLUTION:

人们将我的问题标记为重复,但这并没有解决我的问题。 我要感谢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上测试了android。希望它可以帮助别人。

1 个答案:

答案 0 :(得分:2)

您需要创建隐藏表单并致电submit()

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