Я запросил и не понял, что нашел. Есть ли способ перенаправления для предоставления URL-адреса с помощью метода POST с использованием Javascript или jquery?
Как перенаправить метод "POST" с помощью Javascript?
Ответ 1
На основе Евгений Найденов ответ, я закончил тем, что использовал это, которое также может заполнить данные формы, надеясь быть полезным для других:
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' });
Ответ 2
Создайте формы, заполните 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');
Ответ 3
Здесь идея отправить данные на сервер при перенаправлении пользователя на другую веб-страницу без использования метода 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>
Таким образом, пользователи будут перенаправлены на get.php с некоторыми данными, сообщаемыми в методе POST.
Ответ 4
Попробуйте следующее:
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();
Ответ 5
Перенаправление с помощью 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();
}
});
Ответ 6
На самом деле есть трюк. Вы создаете скрытую форму и запускаете кнопку отправки с помощью jQuery, например:
<form method="POST" action="newurl.html" id="myform">
</form>
и выполните
$('#myform').submit();
Я предлагаю вам использовать версию no-jQuery, опубликованную Юджином Найденовым
Ответ 7
Вы можете использовать сериализацию своей формы и всех данных в сообщении. Ниже приведен пример.
$("#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;
});
Ответ 8
Я думаю, вы должны создать и заполнить скрытый метод = POST action = "YOUR_URL" и отправить его,
Ответ 9
Нет способа сделать это.
Даже элемент a
Sstrikes GET
.
Что вы можете сделать, так это сделать запрос Ajax для публикации и в on-success
использовать window.open()
.
Ответ 10
Используя jQuery, отправьте данные и переадресовывайте их в нужное место:
$.ajax({
type: 'POST',
url: 'receivedata.asp',
data: 'formValue=someValue',
success: function(data){
window.location = data;
}
});
Вы можете удалить данные: 'formValue = someValue', если нет данных для перехода на страницу, которую вы хотите отправить.
Ответ 11
huh... использовать 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 !");
> }