2012-05-17 95 views
0

我JSON数据发送到服务器这样的:JSON数据为空

 var username = $("#usernameField").val(); 
     var email = $("#emailField").val(); 
     var password = $("#passwordField").val(); 
     var parameters = { 
      'username':username, 
      'email':email, 
      'password':password 
     }; 
     $.ajax({ 
      type: "POST", 
      dataType:"JSON", 
      url: doRegistrationUrl, 
      data: parameters, 
      success: function(answer) { 
       console.log(answer); 
      } 
     }); 

这是谁得到的数据的功能(一个Grails控制器)

def doRegistration() { 
    def userdata = request.JSON; 
    printf("DataInController: "+userdata); 
    render userdata.username; 
} 

网址

var doRegistrationUrl = '${createLink(action:"doRegistration", controller:"registration")}'; 

然而,用户数据始终是空,数据犯规获得到服务器。我不明白为什么。任何人都可以帮忙吗?非常感谢。

+0

试“JSON”而不是“JSON” – hvgotcodes

+0

感谢您的答复,但没有做它 – dan

+0

和你实际发送请求?你是否发送到js加载的同一个域? – hvgotcodes

回答

1

您的数据参数只是通过POST发送的普通HTTP请求参数。你就像处理其他控制器一样处理它。尝试:

def doRegistration() { 
    def userdata = params 
    printf("DataInController: "+userdata); 
    render userdata.username; 
} 
+0

是的,这是做到了,谢谢。我不明白为什么params.parameters不工作寿。 – dan

+0

@dan params是一个GrailsParameterMap对象,它是一张地图。使用groovy语法'params ['parameters']'等于'params.parameters',并且由于您没有'parameters'键,所以它是空的。 –

+0

谢谢你好先生 – dan