如何使用 JQuery 重定向,加载另一个页面但在请求中发送了一些 POST 参数?
Posted
技术标签:
【中文标题】如何使用 JQuery 重定向,加载另一个页面但在请求中发送了一些 POST 参数?【英文标题】:How to redirect with JQuery, load another page but sent some POST parameters in request? 【发布时间】:2011-06-22 12:31:37 【问题描述】:如何使用 JQuery、DOJO 或纯 javascript 进行重定向,加载另一个页面但在请求中发送一些 POST 参数?
【问题讨论】:
你也想重定向 POST 数据吗? @primvdb 是的,也需要 POST 数据 【参考方案1】:这应该可以,但我还没有测试过:
function postData(url, data)
var form = $('<form></form>');
$(form).hide().attr('method','post').attr('action',url);
for (i in data)
var input = $('<input type="hidden" />').attr('name',i).val(data[i]);
$(form).append(input);
$(form).appendTo('body').submit();
基本上,您可以即时创建表单并提交。不幸的是,您不能直接从脚本中发布内容。
【讨论】:
@Karan 只需在表单中添加 action="_blank" 属性: $(form).hide().attr('method','post').attr('action',url) .attr('target','_blank') @Ivan 谢谢哥们,这正是我所需要的。不过有一点,如果您想根据data
值生成 input
名称,那么您可以在 data
变量中传递 json 数组,如下所示:var data = [field_name: 'first_name', val: 'some user name', field_name: 'last_name', val: 'This is last name']
然后在 for 循环中:@ 987654326@。非常方便和容易。祝你有美好的一天!【参考方案2】:
您不能使用 JavaScript 使用 postdata 进行重定向,我相信 jQuery 也是如此。但是,您可以做的是...拥有一个包含发布数据的隐藏表单,在 javascript 中根据需要对其进行操作并提交该表单。
<form id="myform" method="post" action="mypage.php">
<input id="myinput" type="hidden" value="mydata" />
</form>
<script type="text/javascript">
// in some function...
document.getElementById("myform").submit();
</script>
【讨论】:
【参考方案3】:您可以先对页面进行 POST 请求,然后重定向:
var urlToPost='http://www.example.com/';
$.post(urlToPost, 'PARAMETER':'VALUE', 'PARAMETER2': 'VALUE2' /*Etc.*/, function(response)
/*Callback*/
alert(response);
document.location=urlToPost;
)
更多信息:jQuery Documentation
【讨论】:
【参考方案4】:Voici ma 命题:
String.prototype.poster=function()
var requeteur=new XMLHttpRequest;
requeteur.open('post',this,true);
requeteur.setRequestHeader('Content-type','application/x-www-form-urlencoded');
var equations=[];
for(i in arguments) equations.push(arguments[i]);
requeteur.send(equations.join(esper));
Au 收费,在 récupère requeteur.responseText 上。
一个vos commentaires!
萨卡普斯
【讨论】:
这里请使用英文。【参考方案5】:使用此代码
$().redirect('demo.php', 'arg1': 'value1', 'arg2': 'value2');
【讨论】:
以上是关于如何使用 JQuery 重定向,加载另一个页面但在请求中发送了一些 POST 参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不重新加载页面的情况下将用户重定向到 redux saga 上的另一个页面