2012-05-17 24 views
1

春天控制器這是我的春天控制器JQuery的/春:過帳JSON對象不工作

@RequestMapping(value = "/app/{appId}/save.html",method=RequestMethod.POST) 
public @ResponseBody String myFunction 
    (@PathVariable("appId") String id, @RequestBody Map<String, String> data1) { 
       return "hello"; 
    } 

這是我的Ajax請求

$.ajax({ 
        type : 'POST', 
        url : '/app/${param.appID}/save.html', 
        data : JSON.stringify(myJsonData), 
        dataType : "json", 

        success : function(data, textStatus, 
          xhr) { 
         var response = xhr.responseText; 
         if (response !== "hello") { 
          alert('sad'); 
         } else { 
          alert('happy'); 
         } 
        } 
       }); 

的問題是,這個請求永遠不會到達控制器卡住 。 如果我刪除數據和data1,事情工作正常。有些人可以幫我解決我做錯了什麼。

更新:這裏的錯誤是由螢火蟲所示

415不支持的媒體類型:因爲請求的實體是不被請求方式所請求的資源支持的格式,服務器拒絕該請求()

這裏是我的JSON對象

myJsonData= { 
         "data1" : $("input[name=key1]:checked").val(), 
         "data2" : $("input[name=key2]:checked").val(), 
         "data3" : $("input[name=key3]:checked").val() 
       }; 

回答

0

JSON.stringify是沒有必要的。

data : myJsonData, 

就夠了。

+0

我已經加入了詳細的錯誤設置consumes="application/json",它同樣爲使用和不使用字符串化 – r15habh

+0

@ r15habh你有你的classpath傑克遜JSON處理器? – xdazz

+0

是的,我有傑克遜JSON處理器,但我發現我使用而不是,出於某種原因,我無法使用,所以我嘗試了自動裝配MappingJacksonHttpMessageConverter,但仍然沒有工作 – r15habh

0

嘗試明確@RequestMapping