2016-07-09 11 views
1

AJAX jQueryリクエストをSpring MVCサーブレットに送信しようとしましたが、いくつか問題がありました。私はすでにいくつかの記事を読んで、彼らは私を助けていませんでした:( だから私はこのajax要求している:Spring MVCで有効なAJAXリクエスト

  $.ajax({ 
       url   : "add_news", 
       type  : "POST", 
       dataType : 'json', 
       contentType : 'application/json', 
       mimeType : 'application/json', 
       data  : JSON.stringify({"category": categoryName, "name": newsName, "data": newsData}), 
       success  : function(data) { 
        $("#list_news").append(
          data.id + " : " + 
          data.name + " - " + 
          data.created + " ; " + 
          data.data + "<br>"); 
       } 
      }); 

コントローラは次のとおりです。

@RequestMapping (value = "/add_news", method = RequestMethod.POST) 
public @ResponseBody News addNews(@RequestParam String category, @RequestParam String name, @RequestParam String data) { 
    System.out.println("category " + category); 
    System.out.println("name " + name); 
    System.out.println("data " + data); 

    NewsCategoryDict c = new NewsCategoryDict(); 
    c.setId(66); 
    c.setName("misc"); 

    News response = new News(); 
    response.setCategory(c); 
    response.setId(60); 
    response.setName(name); 
    response.setData(data); 
    response.setCreated(new java.util.Date()); 

    return response; 
} 

私もシステムを得ることはありません - ので、私の最初の問題はURLです。 "add_news"はjspではありません。サーバからレコードを取得するためのロジックです。 2番目の問題(私がundestandなら正しい場合)は入力パラメータで@RequestBodyを使用してクライアントからデータを取得する必要があります。 Java POJOを追加してこのPOJOを送り返してください。しかし、どのようにしてo有効にするには、JSON本文をAJAX.dataに書いてください。 私を助けてください。

EDIT 私は瞬間を見つける。 $ .ajaxでGETを使用し、コントローラハンドラメソッドのRequestMethod.GETを設定すると、メソッドが呼び出されます(POSTではアクションなし)。だからなぜPOSTは動作していないのですか?

答えて

0

ポストデータからJSON.stringify()を削除します。

$.ajax({ 
    url   : "add_news", 
    type  : "POST", 
    dataType : 'json', 
    contentType : 'application/json', 
    mimeType : 'application/json', 
    data  : {"category": categoryName, "name": newsName, "data": newsData}, 
    success  : function(data) { 
     $("#list_news").append(
       data.id + " : " + 
       data.name + " - " + 
       data.created + " ; " + 
       data.data + "<br>"); 
    } 
}); 
+0

をこれが私の方法で@RequestParamがAJAX.dataのような順序になることを意味? URLはどうしたらコントローラにprintlnがないのですか? – R1K0

+0

なぜGETメソッドが動作し、POSTメソッドがコントローラを起動しないのですか? – R1K0

+0

'GET'を使ったときは、' JSON.stringify() 'を使いましたか? – Blank

関連する問題