2014-02-11 108 views
1

所以我用這個代碼發佈:發佈/接收JSON對象

 $.ajax({ 
       url: '/validator/ValidationController/validate', 
     data : JSON.stringify(parameters), 
     contentType : 'application/json', 
     type : 'POST' 
    }) 

而這個接收,都被同一個按鈕按下觸發。但它只是得到一個空對象。

def validate(){ 
    Thread.currentThread().sleep(1000) 
    def parameters = request.JSON; 
    assert parameters.a == "a_value"; 

} 

當我將鼠標懸停在驗證功能,它被稱爲:對象validator.ValidationController.validate()我假設URL是錯誤的。

注:我對此很缺乏經驗,對我說話就像我受到鼓勵!

回答

1

我們需要更多的代碼才能看到你是如何發送和接收,但似乎你沒有處理異步方面。簡而言之,即使你還沒有回來,即使你試圖入睡,你也會發出請求並立即嘗試處理響應。查看ajax函數的完整配置。類似這樣的:

$.ajax({ 
    url: '/validator/ValidationController/validate', 
    data : JSON.stringify(parameters), 
    contentType : 'application/json', 
    type : 'POST', 
    complete: function(request, success){ 
     validate(request) 
    } 
}) 

def validate(request){ 
    Thread.currentThread().sleep(1000) 
    def parameters = request.JSON; 
    assert parameters.a == "a_value"; 

} 
+0

一個是Javascript函數,另一個是grails,它是客戶端和服務器代碼。 – user3263484