2011-01-13 10 views
2

こんにちは 私は送信ボタンをクリックした後にデータを投稿したいアプリケーションを書いています。それは何らかのウェブアクションにデータをポストして処理されますが、処理後は他のJSPページにリダイレクトされます私は送信ボタンをクリックした場所から同じページにいたい。私はXMLHttpRequestメソッドが不明です。POSTをリダイレクトせずにPOSTする

これを実現するためのアイデアは高く評価されています。

+1

**同じ**ページに転送/リダイレクトするだけで問題はありますか? – BalusC

+0

@BalusCその後、ユーザーがリフレッシュすると決定すると、そのページに尋ねられます。「フォームをもう一度送信しますか?」 – user115422

+0

@MuqMan:ターゲットページに関係なく、リダイレクトする代わりに転送する場合にのみ適用されます。これは、ここで尋ねられたこととはまったく無関係です。 – BalusC

答えて

1

jQueryを使用できます。それは時間を節約します。それはクロスブラウザと互換性があります(つまり、クロスブラウザー互換のテクニックはあなたから隠されています)。

http://api.jquery.com/jQuery.post/

http://jquery.com/

1

あなたは戻って、あなたがPOSTリクエストからの応答としてから来たのページへの302要求を発行することができます。 POSTをしたくない場合は、AJAXでこれを行う方法を説明することができます。

GET-> POST-> GETを使用する理由は、ユーザーが戻るボタンを押した場合、あなたに再投稿されないようにするためです。

2

jQuery.ajax()を使用できます。これはXMLHttpRequestの便利なラッパーです。

3

次のことを試してみてください。send button

function fun() { 
    if (window.XMLHttpRequest) { 
    xmlhttp = new XMLHttpRequest(); 
    } else { 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    var url = "Serv?req_id=1"; 
    xmlhttp.open("POST", url, false); 
    xmlhttp.send(null); 
    var respo= xmlhttp.responseText; 
    document.getElementById("some_id").innerHTML = xmlhttp.responseText; 
} 

コールfun()onclick上のイベント。

これが役に立ちます。

+0

私はあなたのコードを試して、それは動作していません – spt

1

302リクエストバックアプローチがこれには良いと思われます。もしあなたがajaxまたはXMLHttpRequestオブジェクトを使用していたなら、それは問題ではありませんが、ここでリダイレクトヘッダを設定して、クエリ文字列。

ただし、リダイレクトなしで投稿を行うことはできません。

Passing values from one jsp page to another jsp page

0

私は、これは少し遅れている知っているが、知識の共有のために、私はここで良い記事を見つけた:http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/それに は、あなたが求めているものを行う方法の非常に徹底した例です。 。

これは、前述のように、AJAX/jQueryを使用して行います。このチュートリアルでは、このチュートリアルを使用しています。