私は質問しましたが、私が見つけたものはうまくいきません。Javascriptまたはjqueryを使用してPOSTメソッドでURLを指定するようにリダイレクトする方法はありますか?
11 に答える
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 の外観を維持せずに、ユーザーを別の Web ページにリダイレクトしながら、サーバーにデータを送信することです。したがって、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>
このようにして、ユーザーは receive.php にリダイレクトされ、一部のデータが POST メソッドで通知されます。
実はコツがあります。たとえば、jQuery を使用して、非表示のフォームを作成し、送信ボタンをトリガーします。
<form method="POST" action="newurl.html" id="myform">
</form>
そして、
$('#myform').submit();
Eugene Naydenovによって投稿された 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();
hidden method=POST action="YOUR_URL" フォームを作成して記入し、送信する必要があると思います。
そうする方法はありません。
a
要素 S でさえGET
.
あなたができることは、投稿してon-success
使用中のAjaxリクエストを作成することwindow.open()
です。
えっと... 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 !");
> }