2017-03-12 36 views
1

Jquery $.post()メソッドからデータを投稿した後、Springブート1.5からJquery alert()で使用したいデータを返そうとしています。 .1コントローラーメソッド。現在、alert()で使用されると返されるデータは空です。

のjQuery:

$('#element').click(function() { 
    var formData = $('#element').serialize(); 

    var posting = $.post('/update.json?id=${item.id}', formData); 
    posting.done(function(data) { 
     alert(data); 
    }); 

    return false; 
}); 

コントローラー:

@RequestMapping("/update.json") 
@ResponseBody 
public void update(HttpServletRequest request, 
     Map model, 
     @RequestParam(value="id", required=true) Integer id) { 

    // to validation and binding... 

    model.put("result", "test"); 
} 

なぜコールバックでのjQuery dataオブジェクト内のresultプロパティにアクセスできないのですか?

+0

データを正しく表示するには、「アラート(JSON.stringify(data))」を行う必要があります。しかし、いずれにしても警告は[Object]のように表示されるはずです。コントローラに何か問題がありますか? – Massimo

+0

@マッシモはいコントローラのメソッドが正しくセットアップされていないと思われます。コントローラは、データを正常に受信します。 – crm

+0

あなたの春のコントローラは、おそらくレスポンスボディなので、オブジェクトを返さなければなりません – Massimo

答えて

0

コントローラの戻り値の型はvoidですが、それは正常です。あなたは、ステータスを設定したい場合は、応答エンティティを使用することができ、次のいずれか

return new ResponseEntity<String>("test", HttpStatus.OK)

をしたり、プレーン文字列を返すこともできます。

関連する問題