如何使用 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 参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带参数的jquery重定向到另一个页面

视频播放结束 10 秒后如何重定向到另一个页面?

如何使用Razor语法重定向到Jquery中的另一个页面

如何在不重新加载页面的情况下将用户重定向到 redux saga 上的另一个页面

如何通过 URL 更改而不是页面重定向进行 ajax 加载?

使用 JavaScript/jQuery 重定向到 ASP.NET MVC 中的另一个页面