2016-06-02 10 views
0

可能かどうかわかりません。私はいくつかのサイトを参照しましたが、私は正確な答えを得ていませんでした。GETリクエストをPOSTに変換する方法

I am using 
<a href="xyz?id=4"> click </a> 

私は簡単に応答ページでサーバにこの要求を送信すると、私は安全ではありません、しかし、POSTリクエストで、私たちがこれを見カントこれは明らかに、「ID = 4」アドレスバーにを見ることができます。

私たちは、ポストまたは他の方法に取得要求を変換することができますアドレスバーからこれを隠すためです。

ありがとうございます。

+3

アクションとメソッドポスト – guradio

+0

のフォームを使用することはできません、フォームを使用してください。 @guradio –

+4

投稿タイプのajaxリクエストを送信します。 – guradio

答えて

1
<a href="#" onclick="postForm()"> click </a> 

から動的に作成して投稿します。

function postForm() { 
var form = $('<form method="POST" action="xyz"></form>'); 
$(document.body).append(form); 
form.append('<input type="hidden" name="id" value="4"/>'); 
form.submit(); 
} 

Racilはコメントで示唆したように、あなたはまた、ポストを使用して、フォームの送信を行います以下

<a href="#" id="postLink"> click </a> 

、その後

$('#postLink').click(function(e){ 
    e.preventDefault(); 
    //create form and post 
}); 
+0

ニースですが、私は 'href'と' onclick'の両方を使用しません。私は 'click'を使います。 –

+0

@RacilHilan yesまたはバインドアンカーのIDで、クリックイベントを 'href = '#'でバインドします。 – anu

+0

@anuは$(document)以外の理由を知りません。追加(フォーム);ラインが機能していません。 –

2

まず、単純にフォームへのリンク変更、POSTGETを変換するには:

<form id="myForm" action="xyz" method="post"> 
    <input type"hidden" name="id" value="4"/> 
</form> 

このフォームは表示されませんが、あなたは簡単にあなたのリンクではJavaScriptを使用して、それを自動的に送信することができます:

<a href="javascript:void document.getElementById('myForm').submit();"> click </a> 

さらに重要なことに、GETPOSTは、HTTPで同等に安全ではありません。それらを保護するには、HTTPSを使用してください。両方とも同等に安全なので、GETが有効であれば変更する必要はありません。

+0

フォームを送信するためのデフォルトのメソッドはありませんか? – eol

+0

@ fbo3264おっと!修正されました。ありがとう。 –

0

コールonclickの上のJavaスクリプト機能を行うことができますメソッドを使用するか、ajax呼び出しを使用してデータをポストし、目的の結果を得ることができます。関数のパラメータとしてidを使用します。

<a href="#" onclick="postData(4)"> 

/// Javascript function for ajax call 
function postData(id){ 
    var param = { "Id": id}; 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    url: "xyz.aspx", 
    data: JSON.stringify(param), 
    success: function (data) { 
     /// Recive data here or do your stuff here 
    } 
} 

その入力タイプ隠し要素の単一の入力タイプ隠さとonclickの設定値を有するフォームを作るとjQueryを使用してフォームを送信します。

うまくいけば、これで問題は解決します。

関連する問題