如何使用Javascript通过“POST”方法重定向
How to redirect through 'POST' method using Javascript?
我已经查询过了,但没有弄清楚我发现了什么。有没有办法重定向到使用 Javascript 或 jquery 的 POST 方法给出网址?
根据Eugene Naydenov的回答,我最终使用了这个也能够填写表单数据,希望对其他人有用:
function redirectPost(url, data) {
var form = document.createElement('form');
document.body.appendChild(form);
form.method = 'post';
form.action = url;
for (var name in data) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = data[name];
form.appendChild(input);
}
form.submit();
}
// redirectPost('http://www.example.com', { text: 'text'n'ntext' });
更新(2021):几年后,一个打开新选项卡/窗口的版本对我也很有用,所以希望这也很有用,只是要确保这将发生在点击事件中,因为浏览器应该阻止它否则,
function openPostPage(url, data) {
var form = document.createElement('form');
document.body.appendChild(form);
form.target = '_blank';
form.method = 'post';
form.action = url;
for (var name in data) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = data[name];
form.appendChild(input);
}
form.submit();
document.body.removeChild(form);
}
创建表单,填写method
并action
属性,提交表单。
var redirect = function(url, method) {
var form = document.createElement('form');
form.method = method;
form.action = url;
form.submit();
};
redirect('http://www.example.com', 'post');
jQuery版本(但在这种特殊情况下,我更喜欢纯JavaScript):
var redirect = function(url, method) {
$('<form>', {
method: method,
action: url
}).submit();
};
redirect('http://www.example.com', 'post');
这里的想法是在将用户重定向到另一个网页时将数据发送到服务器,而无需使用 GET 方法并保持 URL 的外观。因此,我们将使用与POST方法发送表单相同的过程。
用于创建表单并将其提交到服务器的 HTML/Javascript 代码:
<html>
<body>
<script>
var form = document.createElement("form");
form.method = 'post';
form.action = 'receive.php';
var input = document.createElement('input');
input.type = "text";
input.name = "data";
input.value = "this is the data I'm sending to server through POST";
form.appendChild(input);
form.submit();
</script>
<body>
<html>
在 PHP 中接收此数据:
<pre>
<?php
var_dump($_POST);
?>
</pre>
通过这种方式,用户将被重定向到接收.php并在 POST 方法中通知一些数据。
试试这个:
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();
其实有一个技巧。你创建一个隐藏的表单并触发提交按钮,例如jQuery:
<form method="POST" action="newurl.html" id="myform">
</form>
并做一个
$('#myform').submit();
我建议你使用Eugene Naydenov发布的no-jQuery版本
使用 POST vars 重定向(在 jQuery 上)
var redirect = 'http://www.website.com/page?id=23231';
$.redirectPost(redirect, {x: 'example', y: 'abc'});
$.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>').submit();
}
});
您可以使用序列化表单和发布中的所有数据。 下面是一个示例。
$("#submit_btn").click(function(){
$('.error_status').html();
if($("form#frm_message_board").valid())
{
$.ajax({
type: "POST",
url: "<?php echo site_url('message_board/add');?>",
data: $('#frm_message_board').serialize(),
success: function(msg) {
var msg = $.parseJSON(msg);
if(msg.success=='yes')
{
return true;
}
else
{
alert('Server error');
return false;
}
}
});
}
return false;
});
没有办法这样做。
即使是a
元素也会打击GET
.
您可以做的是发出Ajax请求发布并on-success
使用window.open()
。
我认为您应该构建并填写一个隐藏的方法=POST action="YOUR_URL"表单并提交它
使用 jQuery 发布数据并重定向到您想要的位置,如下所示:
$.ajax({
type: 'POST',
url: 'receivedata.asp',
data: 'formValue=someValue',
success: function(data){
window.location = data;
}
});
您可以删除数据:"formValue=someValue",如果没有要传递
呵...使用 AJAX Jquery:
> $.ajax({
> type: "POST",
> url: "www.example.com/the_page_I_post_to.php",
> data: $('yourform').serialize(),//sent data
> success: function(msg) {
> alert("posted !");
> }
- AJAX不会在文件上传后重定向到网页-POST方法
- AngularJS在页面重定向上执行控制器方法
- 倒计时和重定向的正确方法
- 如何从发布方法获取数据后重定向
- 是否使用 PHP 或 JavaScript 方法来重定向页面
- 单击按钮后需要jQuery方法重定向-ASP.NET、VB.NET、jQuery、Javascript
- 什么'这是重定向不受支持的浏览器的最简单方法
- 要重定向的 SignalR 自定义方法
- 确实存在一种重定向和显示 javascript 消息的方法
- 如何使用Javascript通过“POST”方法重定向
- 在 Javascript 重定向中包含 HTTP 方法
- 页面内的Javascript重定向方法
- 单个 Javascript 方法上的两个页面重定向
- Spring MVC JSP Jquery调用控制器方法上的按钮点击后重定向错误
- 使用POST方法重定向javascript页面
- Expressjs POST方法后重定向不正确
- Window.Location.Href或重定向_self的其他方法不起作用(MVC视图)
- 如何使用post方法创建重定向链接
- 如何在jQuery中使用POST方法重定向
- AJAX DELETE方法重定向不起作用