jQuery - 使用发布数据重定向

y2k*_*y2k 77 html javascript jquery post

如何使用发布数据重定向?

如何移动到新页面$_POST

这该怎么做?它是如何完成的,为什么要这样做呢

Tim*_*m S 88

有一个JQuery插件可以完成你想要做的事情:https://github.com/mgalante/jquery.redirect/blob/master/jquery.redirect.js.

在包含JQuery和jquery.redirect.min.js插件之后,您可以简单地执行以下操作:

$().redirect('demo.php', {'arg1': 'value1', 'arg2': 'value2'});
Run Code Online (Sandbox Code Playgroud)

而是在较新的JQuery版本上使用以下代码:

$.redirect('demo.php', {'arg1': 'value1', 'arg2': 'value2'});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 使用jquery 2.1.3和我的正确语法是$ .redirect(...); 没有括号. (19认同)

tfo*_*ont 86

这是一个简单的小函数,只要你使用jQuery就可以在任何地方应用.

var redirect = 'http://www.website.com/page?id=23231';
$.redirectPost(redirect, {x: 'example', y: 'abc'});

// jquery extend function
$.extend(
{
    redirectPost: function(location, args)
    {
        var form = '';
        $.each( args, function( key, value ) {
            form += '<input type="hidden" name="'+key+'" value="'+value+'">';
        });
        $('<form action="'+location+'" method="POST">'+form+'</form>').appendTo('body').submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

根据评论,我扩展了我的答案:

// jquery extend function
$.extend(
{
    redirectPost: function(location, args)
    {
        var form = $('<form></form>');
        form.attr("method", "post");
        form.attr("action", location);

        $.each( args, function( key, value ) {
            var field = $('<input></input>');

            field.attr("type", "hidden");
            field.attr("name", key);
            field.attr("value", value);

            form.append(field);
        });
        $(form).appendTo('body').submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 为移动设备添加`.appendTo('body')`例如:`$('<form action ="'+ location +'"method ="POST">'+ form +'</ form>').appendTo ('body').submit();`基于[这个答案]的想法(http://stackoverflow.com/a/18870799) (9认同)
  • 这个解决方案比接受的答案要好得多.它易于实现,无需加载额外的库! (4认同)
  • 尝试使用它时,我得到$ .redirectPost不是函数错误. (2认同)

kao*_*991 8

为什么不创建一个带有一些隐藏输入的表单并使用jQuery提交它?应该管用 :)