2016-12-14 6 views
-1

投稿者JavaScript私はいくつかの変数をバックエンドに渡そうとしています。私のコードは以下の通りです。POSTメソッドを使用してパラメータを渡す

私の要件:

私は間違いなく、よりその300文字まで来るとGET要求に準拠していますユーザーの名前、電子メールと説明を送信するために期待しています。したがって、これらのパラメータを使用してPOSTリクエストを送信するにはどうすればよいですか。誰かが私を助けることができますか?

注:私のバックエンドはC#

window.location.href = "/Account/New?fullname=". $data.fullName; 
+0

:あなたはAJAXリクエストをしたい場合、あなたは以下を使用することができますか

<form action="your-page-after-submittion.html" method="post"> <p>Your full name: <input type="text" name="fullname" /><br /> E-mail: <input type="text" name="email" /></p> <p>Your message:<br /> <textarea name="message" rows="10" cols="40"></textarea></p> <p><input type="submit" value="Send the from"></p> </form> 

私は、次のような、単純な形式で開始するには、学習と簡単にするため、お勧めします''/Account/New?fullname = "+ $ data.fullName;' '.'の代わりに' + 'を使ってconcateします。 –

+1

downvoteの理由は? – Illep

+0

あなたがネットワークボックスに対して安全でないようにしようとしているのでなければ、get要求は実際にはちょっとだけ300文字以上です。あなたの制限は255です。とにかく、ライブラリ/フレームワークの選択によって、答えは異なります。バニラのjavascriptであなたはここで読むことができます:[http://stackoverflow.com/questions/9713058/send-post-data-using-xmlhttprequest]。 Btw、4 + kの代理人のために、あなたの質問は幾分貧弱に研究されています。 –

答えて

-1

であるあなたは、フォームを作成し、次の操作を行って、JavaScriptでそれを提出することができます:

function submitFullName(fullName, destination) 
{ 

    var form = document.createElement("form"); 
    var input1 = document.createElement("input"); 

    form.method = "POST"; 
    form.action = destination; 

    input1.value=fullName; 
    input1.name="fullname"; 
    form.appendChild(input1); 

    document.body.appendChild(form); 

    form.submit(); 
} 

@VladimirMは良い点を作った、あなたが使用することができますフォームオブジェクトを作成する代わりにPOSTを行う直接XMLHttpRequest:

function submitFullName(fullName, destination) 
{ 

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", destination, true); 
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xhr.send("fullname="+fullName); 

} 
+0

なぜあなたはPOSTリクエストを作成することができます、フォームを作成するトンを生成する検索グーグルだと思いますか? –

+0

@VladimirMはい。私が知りたいのは、FORMSを使わずにGETリクエストを作成する方法です。 – Illep

+0

@Illepあなたは "POST"を意味していますか?いずれにしても、私は上記のコメントの重複した質問へのリンクを与えました –

2

window.locationを使用すると、URLによってパラメータが送信されます。つまり、GETメソッドで送信され、POSTでは送信されません。 POST方法を使用してサーバーにデータを送信するために

、あなたはAJAX XMLHttpRequest要求により、フォーム要素を作成したくない場合はmethod="post"か、と定義されているフォームで送信するかがあります。

//prepare your data values to be sent in the request 
var fullname = document.getElementById("fullname").value; 
var email = document.getElementById("email").value; 
var message = document.getElementById("message").value; 

//create an XMLHttpRequest     
var xmlhttp; 

if (window.XMLHttpRequest) 
{ 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{ 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

//submit the request to your desired page (user will not be redirected, as this is AJAX request        
xmlhttp.open("POST","your-page-after-submittion.html",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("fullname="+fullname+"&email="+email+"&message="+message); 
+0

それは私にサーバー500エラーを与え、ビューはリダイレクトされません。 – Illep

+0

正確なエラー 'リソースの読み込みに失敗しました:サーバは500のステータス(内部サーバエラー)で応答しました。 'xmlhttp.send(...) 'でエラーが発生します – Illep

+1

HTTPエラー500は、サーバ側で何らかのエラーが発生したことを意味します。クライアントで生成されたエラーではありません。詳細はこちら[https://www.lifewire.com/500-internal-server-error-explained-2622938]をご覧ください。サーバー側のコードをデバッグして、要求がサーバーに到着したことを確認してください。 –

関連する問題