2015-10-13 76 views
0

我在做一个AJAX请求到自己的REST API,并试图在警报打印我得到的消息。
问题的关键是,我发现了以下错误:SyntaxError: Unexpected token :Grails的Ajax回调不渲染/正确响应

,使调用的代码是:

$.ajax({ 
     url:"${g.createLink(controller:'report',action:'show')}", 
     dataType: 'json', 
     data: { 
      data: jSon, 
     }, 
     success: function(data) { 
      alert(data) 
     }, 
     error: function(request, status, error) { 
      alert(error) 
     }, 
     complete: function() { 
     } 
    }); 

返回值我在控制器印刷是:

JSON: {"results":"SELECT cliente.edad FROM Cliente cliente,Local local WHERE Local.numero==3 GROUP BY Cliente.edad ORDER BY Cliente.edad undefined""} 

而且我在做什么的控制器:

println "JSON: " + java.net.URLDecoder.decode((String)apiResponse.json) 
    render java.net.URLDecoder.decode((String)apiResponse.json) 

我也试图与respond代替render但同样的错误

+0

你找到了答案,你的问题。如果是,那么也许回答你自己的问题? – Neoryder

+0

请包括您用来查询数据库的代码 – Neoryder

+0

可悲的是我还在处理它,我正在准备考试。问题是我在客户端得到了正确的json,但是当我做一个提醒时,消息是“SyntaxError” – Federico

回答

0

尝试使用呈现为JSON

def results = ['a':'AA','b':'BB'] 

render results as JSON 
+0

我得到的是:'不能投射对象'{“results”:“SELECT cliente.edad FROM cliente cliente,departamente departamente WHERE Departamente.nombre == ASDF GROUP BY row.grouping ORDER BY row.sorting未定义 “”} '带班 'java.lang.String中' 上课' grails.converters.JSON'' – Federico

+0

这意味着你试图转换错误的东西,请包括你用来查询数据库的代码 – Neoryder

+0

它也说.edad或age是undefined,请检查你的表是否存在,也就是说尝试在sqldeveloper中运行这个。 – Neoryder