2012-05-17 38 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