2017-05-15 36 views
0

我試圖在輸入員工編號時自動填充員工詳細信息。將JSON對象渲染到grails中的AJAX調用

在控制器我打電話返回JSON對象的方法:

Gson gson = new Gson(); 
    System.out.println(gson.toJson(objEmp)); 
    return gson.toJson(objEmp); 

在控制器我返回到AJAX調用爲:

render(contentType: "application/json") {[data]} 

AJAX調用如下:

$(document).keypress(function(e) { 
if(e.which == 13){ 
    var URL="${createLink(controller:'employeeAdd',action:'getDetails')}"; 
    var empNo = $("#empNo").val(); 
    alert("empNo: " + empNo); 
    $.ajax({ 
     type: "GET", 
     url:URL, 
     contentType: "application/json; charset=utf-8",    
     dataType: "json", 
     data: { 
      empNo:empNo 
     }, 
      success: function (data) { 

       $("#empNo").val(data.employeeNumber); 
       $("#employeeName").val(data.employeeName); 
      }, 
      error: function (jqXHR, exception) { 
       var msg = ''; 
       if (jqXHR.status === 0) { 
        msg = 'Not connect.\n Verify Network.'; 
       } else if (jqXHR.status == 404) { 
        msg = 'Requested page not found. [404]'; 
       } else if (jqXHR.status == 500) { 
        msg = 'Internal Server Error [500].'; 
       } else if (exception === 'parsererror') { 
        msg = 'Requested JSON parse failed.'; 
       } else if (exception === 'timeout') { 
        msg = 'Time out error.'; 
       } else if (exception === 'abort') { 
        msg = 'Ajax request aborted.'; 
       } else { 
        msg = 'Uncaught Error.\n' + jqXHR.responseText; 
       } 

      },  
    }); 
}; 
}); 

我沒有收到任何錯誤。即使數據以JSON格式存在,也不會自動填充。我是JSON和AJAX調用的新手。我嘗試從互聯網上的代碼仍然無法獲得所需的輸出。我無法找到錯誤。任何指針都會有很大的幫助。謝謝。

回答

0

我作了如下改變和代碼工作:

  1. 返回僱員對象從方法。
  2. 渲染的對象作爲JSON ==>渲染dataEmp如JSON
  3. 在AJAX調用funtion
  4. 提取的數據==>成功:函數(dataEmp)