使用 JavaScript/jQuery 在重定向时发送 POST 数据?

2022-08-30 00:32:53

基本上,我想做的是在更改 时发送数据,就好像用户提交了表单并将其转到新页面一样。我需要这样做,因为我需要传递一个隐藏的URL,并且出于装饰原因,我不能简单地将其放在URL中。POSTwindow.locationGET

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

if(user has not voted) {

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

}

我知道您可以使用 发送数据,但我需要将其与新的 .POSTjQuery.post()window.location

因此,回顾一下,我需要通过 发送值,同时将用户同时发送到同一页面。api_urlPOSThttp://example.com/vote/


为了将来参考,我最终做了以下操作

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();

}

答案 1

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

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();

答案 2

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