首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用JavaScript/jQuery重定向发送POST数据?

用JavaScript/jQuery重定向发送POST数据?
EN

Stack Overflow用户
提问于 2011-12-06 01:54:46
回答 11查看 450.7K关注 0票数 244

基本上,我想做的是在更改window.location时发送POST数据,就好像用户提交了一个表单,然后它转到了一个新页面。我需要这样做,因为我需要传递一个隐藏的URL,而出于美观的原因,我不能简单地将它作为GET放在URL中。

这就是我目前所拥有的,但它不会发送任何POST数据。

代码语言:javascript
复制
if(user has not voted) {

    window.location = 'http://example.com/vote/' + Username;

}

我知道你可以用jQuery.post()发送POST数据,但我需要用新的window.location发送。

因此,简单地说,我需要通过POSTapi_url值发送到http://example.com/vote/,同时将用户发送到相同的页面。

为了便于将来参考,我最终执行了以下

代码语言:javascript
复制
if(user has not voted) {

    $('#inset_form').html('<form action="http://example.com/vote/' + Username + '" name="vote" method="post" style="display:none;"><input type="text" name="api_url" value="' + Return_URL + '" /></form>');

    document.forms['vote'].submit();

}
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-12-06 02:42:01

构造和填写一个隐藏的method=POST action="http://example.com/vote"表单并提交它,而不是使用window.location

票数 187
EN

Stack Overflow用户

发布于 2012-04-05 10:58:51

根据@Kevin-Reid的回答,这里是“我最终完成了以下操作”示例的替代方案,该示例通过专门构造表单(使用jQuery)来避免再次命名和查找表单对象。

代码语言:javascript
复制
var url = 'http://example.com/vote/' + Username;
var form = $('<form action="' + url + '" method="post">' +
  '<input type="text" name="api_url" value="' + Return_URL + '" />' +
  '</form>');
$('body').append(form);
form.submit();
票数 243
EN

Stack Overflow用户

发布于 2014-04-29 01:43:04

这里有一个简单的小函数,只要您使用的是jQuery,它就可以应用到任何地方。

代码语言:javascript
复制
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 ) {
            value = value.split('"').join('\"')
            form += '<input type="hidden" name="'+key+'" value="'+value+'">';
        });
        $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
    }
});
票数 59
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8389646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档