2012-04-04 72 views
2

我是Grails的新手,所以這可能是一個愚蠢的....但是我試圖從使用Grails REST的Grails中的jquery客戶端獲取json對象,但是我得到null 。可能是一個小gitch但其在阻礙創造了我的第幾個數據流我想測試在Grails中使用參數獲取JSON對象REST

我的jQuery的電話:

var jsonObjects = [{name: "IPAD", input: "IPAD", program: "IPAD", destination: "IPAD",  
priority: "IPAD", userData: "IPAD", email: "IPAD", webCallBackURL: "IPAD", copyToLocal:  
"IPAD", scriptPreProcess: "IPAD", deleteSource: "IPAD", moveToSource: "IPAD",  
scriptPostProcess: "IPAD", inputImage: "IPAD", leftImage: "IPAD", topImage: "IPAD", 
opacityImage: "IPAD", bImageAdAvBlanking: "IPAD"}] 

$.ajax({ 
    type: "POST", 
    url: 'http://localhost:8080/Medusa/jobControlREST/save', 
    data: {ipad: JSON.stringify(jsonObjects)}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    beforeSend: function(x) { 
     if (x && x.overrideMimeType) { 
      x.overrideMimeType("application/json;charset=UTF-8?"); 
     } 
    }, 
    success: function() { 
     alert('hi'); 
    } 
}); 

我的Grails:

def save = { 
    def jsonString = params['ipad'] //returns null 
    def json = JSON.parse(jsonString) // returns null obviously 
    println "this is POST call" +json // gets printed but json is null...sign ( 
} 

urlmapping: 
    "/$controller/$action?/$id?"(parseRequest:true) { 
     constraints { 
      action = [GET:"index", POST:"save", PUT:"update", DELETE:"remove"] 
     } 
    } 
+0

你確定你的'data'是從客戶端發送的嗎?你使用Firebug或其他工具檢查了你的AJAX調用嗎? – aiolos 2012-04-05 05:29:52

+0

嗨Aiolos - 你說得對,我試着用Chrome瀏覽器做,但它的工作原理相同的一段代碼不適用於Internet Explorer 8。爲什麼?我還沒弄清楚,但IE確實給了我一個問題。非常感謝您的時間! – user1313900 2012-04-05 05:50:35

回答

0

使用此:

def jsonObject=request.JSON