使用ajax和Play Framework 2发送Post Json

时间:2013-05-06 23:27:24

标签: javascript jquery playframework playframework-2.0

我有一个关于向播放控制器发送json数据的问题。

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。你认为哪个可能是问题? 感谢。

2 个答案:

答案 0 :(得分:8)

您必须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);
        }
});

答案 1 :(得分:2)

你必须" 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);
    }
 });