こんにちは 私は送信ボタンをクリックした後にデータを投稿したいアプリケーションを書いています。それは何らかのウェブアクションにデータをポストして処理されますが、処理後は他のJSPページにリダイレクトされます私は送信ボタンをクリックした場所から同じページにいたい。私はXMLHttpRequestメソッドが不明です。POSTをリダイレクトせずにPOSTする
これを実現するためのアイデアは高く評価されています。
こんにちは 私は送信ボタンをクリックした後にデータを投稿したいアプリケーションを書いています。それは何らかのウェブアクションにデータをポストして処理されますが、処理後は他のJSPページにリダイレクトされます私は送信ボタンをクリックした場所から同じページにいたい。私はXMLHttpRequestメソッドが不明です。POSTをリダイレクトせずにPOSTする
これを実現するためのアイデアは高く評価されています。
jQueryを使用できます。それは時間を節約します。それはクロスブラウザと互換性があります(つまり、クロスブラウザー互換のテクニックはあなたから隠されています)。
あなたは戻って、あなたがPOSTリクエストからの応答としてから来たのページへの302要求を発行することができます。 POSTをしたくない場合は、AJAXでこれを行う方法を説明することができます。
GET-> POST-> GETを使用する理由は、ユーザーが戻るボタンを押した場合、あなたに再投稿されないようにするためです。
jQuery.ajax()を使用できます。これはXMLHttpRequestの便利なラッパーです。
ここでは、(jQueryを使って)やって探しているものに多大な初心者向けのチュートリアルです:あなたがしたいが、その後(あなたがあなたの質問のタグを持っているとして)のJavaスクリプトとAjaxを使用しない場合は
http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/
次のことを試してみてください。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
上のイベント。
これが役に立ちます。
私はあなたのコードを試して、それは動作していません – spt
302リクエストバックアプローチがこれには良いと思われます。もしあなたがajaxまたはXMLHttpRequestオブジェクトを使用していたなら、それは問題ではありませんが、ここでリダイレクトヘッダを設定して、クエリ文字列。
ただし、リダイレクトなしで投稿を行うことはできません。
私は、これは少し遅れている知っているが、知識の共有のために、私はここで良い記事を見つけた:http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/それに は、あなたが求めているものを行う方法の非常に徹底した例です。 。
これは、前述のように、AJAX/jQueryを使用して行います。このチュートリアルでは、このチュートリアルを使用しています。
**同じ**ページに転送/リダイレクトするだけで問題はありますか? – BalusC
@BalusCその後、ユーザーがリフレッシュすると決定すると、そのページに尋ねられます。「フォームをもう一度送信しますか?」 – user115422
@MuqMan:ターゲットページに関係なく、リダイレクトする代わりに転送する場合にのみ適用されます。これは、ここで尋ねられたこととはまったく無関係です。 – BalusC