0

SpringMVCで実行されているJavaバックエンドに対してGET/POSTajax呼び出しを行いたいjQueryWebアプリフロントエンドがあります。

これが私が作りたいGETリクエストです:

http://www.myapp.com/backend/doSomething?a=1&b=2

サーバー側では、これが私のBackendControllerオブジェクトです:

@RequestMapping(value = "/backend/doSomething", method = RequestMethod.GET)
public ModelAndView handleDoSomething(@RequestParam("a") String a,
    @RequestParam("b") String b) {

    ModelAndView mav = new ModelAndView();
    mav.setViewName("backend/SomeView");

    // process the request...

    return mav;
}

これが私がこれまでに試みたjQueryです:

$.get({
    url: "/backend/doSomething?a=???&b=???",
    success: function(data) {
    }
    ???
});

jQueryの$.getページを読みましたが、まだいくつかのことについて混乱しています。

  1. urlforにクエリ文字列パラメータを追加する適切な方法は何GETですか?
  2. POSTフォームデータをsに追加する適切な方法は何ですか?
  3. success関数は、、、、の3つのパラメーターを使用することがわかりますがdata、多くの例textStatusでは、その部分jqXHRのみをリストしています。いつ渡すのか、いつ3つすべてを渡すのですか。datadata
  4. getdataプロパティとそのsuccess: function (data) { ... }引数の違いは何ですか?
  5. jQueryがSpringバックエンドに接続できるようにするためにSpringバックエンドで行う必要のある特別な構成はありますか、それともjQueryはバックエンドをまったく気にしませんか?

これらを調べてみましたが、これらの項目の明確な定義が得られないようです。前もって感謝します。

4

2 に答える 2

3

jQuery Get / Post Params

  1. URL
  2. データ-データ(つまり、投稿変数)のようなクエリ文字列を格納する場所であるデータオブジェクト
  3. サクセスハンドラー(追加のパラメーターは必要ありません。そのため、さまざまな形式で表示されています)
  4. DataType-サーバーから返されると予想されるデータ型

参考までに、必要なパラメータはurlパラメータだけだと思います。get呼び出しは、次のようになります。

$.get("/backend/doSomething", { a : a, b : b }, success: function(data) {
    // Perform Success code
});

ちなみに、次のようなものを使用して、フォームをシリアル化して投稿に渡すこともできます。

$('form').serialize()

編集

jQuery$.get()とを使用する場合のURL、データ、成功パラメータの命名に関して$.post()は、これは不可能です。これらの関数は、jQueryの短縮版です$.ajax()。とにかく長い形式を実行する場合は、get/postを使用しても意味がありません。パラメータを指定する場合は、次のようにajaxを使用します。

$.ajax({
    url: "/backend/doSomething", 
    data: { a : a, b : b }, 
    success: function(data) {
        // Perform Success code
    }
});
于 2012-09-18T16:45:15.243 に答える
1

それはすべてそこにあります...(つまり、jQuery APIとインターネットです。)

基本的に、次$.getのように使用します。

$.get('/backend/doSomething', // 1st argument: URL
  { a: 1, b: 2 }, // 2nd arg (optional): JS Object or String you want to pass
  function(data) { // 3rd arg (or 2nd in case data is missing) success callback
    alert('Success!'); // or sth else
});

では、質問に戻りましょう。

  1. 2番目の引数をに渡すだけ$.getです。
  2. 代わりに使用$.postしてください(どちらも類似しており、単なるラッパーです。ドキュメント$.ajaxを参照してください)。
  3. 通常、最初のパラメータのみを使用dataします。JavaScriptでは、メソッドのシグネチャが一致する必要はありません(Javaのように言えば)。必要に応じて、パラメータを無視できます。
  4. dataの2番目の引数は$.get、コントローラーに指定する入力success: function (data)パラメーターであり、応答出力(おそらく@ResponseBodyJacksonによってJSON化されたオブジェクト)です。つまり:

    function(data) {
      alert('Success! Data ' + data);
    }
    

    function(data, textStatus, jqXHR) {
      alert('Success!');
    }
    

    同等です。

  5. いいえ、jQueryは物事を簡単にする単なるJavaScriptライブラリです。ドキュメントに書かれているように、両方を使用してください。

于 2012-09-18T16:55:46.500 に答える