リンクすることはできませんPOST
データのみGET
。 URLのみとヘッダーがサーバーに 送信されるGET要求方法とは対照的に
、POSTリクエストは、メッセージ本体を含みます。この は任意のタイプの任意の長さのデータをサーバーに送ることができます。
基本的に、は、1)サーバーが、より多くのデータを送信する必要があることを示す余分なヘッダー値を持つ「通常の」要求を受け取ります。その時点で、サーバーは確認応答を送信し、2)クライアントはPOST
本文を送信します。この動作は、リンクでのみ達成することはできません。
しかし、この解決策はあると私はこれらの引数でpage.php
を呼び出すに、のautoSubmitてしまう
<form name="frm" method="post" action="http://your.domain.com/path/to/page.php?param1=1¶m2=2">
<input type="hidden" name="foo" value="bar" />
</form>
<script type="text/javascript">
document.forms["frm"].submit();
</script>
のようなものをform
を出力し、他の人の間でいくつかの技術を、見てきました
$_GET = array('param1' => '1', 'param2' => '2');
$_POST = array('foo' => 'bar');
これは単純な「リダイレクト」方式ですが、実際には代わりに標準のリンクを使用してのようないくつかの隠しフォームをトリガする<a>
要素を作成できることに注意してください。 (テストされていないコード)
<a href="http://your.domain.com/path/to/page.php?param1=1¶m2=2" onclick="return dopost(this.href, {foo:'bar'});">A simple link</a>
<script type="text/javascript">
function dopost(url, params) {
var pe = '';
for (var param : params) {
pe += '<input type="hidden" name="'+param+'" value="'+params[param]+'" />';
}
var frmName = "frm" + new Date().getTime();
var form = '<form name="'+frmName+'" method="post" action="'+url'">'+pe+'</form>';
var wrapper = document.createElement("div");
wrapper.innerHTML = form;
document.body.appendChild(wrapper);
document.forms[frmName].submit();
}
</script>
これはおそらく実際に必要なものです。
本当にありがとうございます! –