2013-05-06 74 views
4

我有一個關於發送JSON數據到播放控制器的問題。發送帖子JSON與Ajax和播放框架2

seach.scala.html

$.ajax({ 
      type : "POST", 
      dataType: 'json', 
      data: { 
       'filter': "John Portella" 
      }, 
      url : "@routes.Search.findPag()", 
      success: function(data){ 
       console.log(data); 
      } 
     }); 
     return false; 

控制器:POST /find/findPag Search.findPag()

public static Result findPag(){  
    JsonNode json = request().body().asJson(); 
    return ok(); 
} 

調試我得到JSON = NULL。你認爲可能是這個問題? 謝謝。

回答

7

你必須要stringify的數據。因爲現在我認爲.toString()將在數據對象上被調用,並且這不是可以在服務器端正確解析爲JSON的東西。

var d = { 'filter': "John Portella" }; 
$.ajax({ 
    type : "POST", 
    dataType: 'json', 
    data: JSON.stringify(d), 
    url : "@routes.Search.findPag()", 
     success: function(data){ 
      console.log(data); 
     } 
}); 
+0

哦,我以爲你發送已經解析。謝謝 – JohnPortella 2013-05-11 13:03:15

1

你必須「contentType」數據。

var d = { 'filter': "John Portella" }; 
$.ajax({ 
    type : "POST", 
    dataType: 'json', 
    data: JSON.stringify(d), 
    contentType: "application/json; charset=utf-8", 
    url : "@routes.Search.findPag()", 
    success: function(data){ 
     console.log(data); 
    } 
});