5

以下がjQueryを使用して別のページにデータを送信する正しい方法かどうか教えてください。私は初心者で、構文についてよくわかりません。rowDataJSON形式です。ボタンをクリックすると値が渡されます。

$.post("GridValues.jsp", {"rowData": rowData });
4

4 に答える 4

6

の構文はPOST、JSP ページが CGI スタイルの URI エンコードされた変数または JSON blob を受け取ることを期待しているかどうかによって異なります。

前者 (より一般的な) の場合、コードは正しいです。rowData変数は、JSON でデコードする必要がある CGI パラメーターとして表示されます。

$.post呼び出しが完了した後にクライアント コードに何かを実行させたい場合は、遅延オブジェクトを使用するのが最新の方法です。

$.post(...).done(function(data, textStatus, jqXHR) {
    // called on success
}).fail(function(jqXHR, textStatus, errorThrown) {
    // called on failure
}).always(function() {
    // called in both cases 
});

遅延オブジェクトを使用すると、 (別名) ハンドラーの受け渡しのみをサポートする を使用して直接利用できない機能 (.failおよびコールバック) が公開されることに注意してください。.always$.postsuccessdone

jqXHR 結果を使用して$.postコールバックを登録する方が、コールバックをパラメータとして AJAX 関連のメソッドに直接渡すよりも柔軟です。これにより、AJAX 呼び出しの開始のみを担当する関数を作成し、結果の処理を担当するハンドラーから完全に切り離されたハンドラーを持つことができます。

于 2012-10-15T09:17:04.027 に答える
3

あなたのjquery呼び出しはうまくいくはずです。さらに、いつでも jquery API jQuery.postを参照できます。

jQuery.post( URL [, データ] [, 成功(データ, テキストステータス, jqXHR)] [, データタイプ] )

urlリクエストの送信先の URL を含む文字列。

dataリクエストとともにサーバーに送信されるマップまたは文字列。

success(data, textStatus, jqXHR)リクエストが成功した場合に実行されるコールバック関数。

dataTypeサーバーから期待されるデータのタイプ。デフォルト: Intelligent Guess (xml、json、script、text、html)。

それらを試してみて、問題が発生した場合はお知らせください。

于 2012-10-15T09:16:44.577 に答える
2
$.post("GridValues.jsp", {"rowData": rowData }, function(){} );  

と同じです

$.ajax({
type: 'POST',
url: "GridValues.jsp",
data: {"rowData": rowData },
success: function(){}
});
于 2012-10-15T09:15:51.490 に答える
1

この構文は有効です。

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

ドキュメントはこの構文を提供します: jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

成功ハンドラを含めなくてもよろしいですか?

于 2012-10-15T09:16:20.633 に答える