我正在使用Grails应用程序中的Atmosphere插件向客户端发出Ajax推送调用。基本架构是,我在服务器中有一个循环,它创建了我想要推送到浏览器的数据,因此在每次迭代中它都使用大气broadcast()方法将数据发送到客户端。
当我在循环外使用它时它工作正常,如下所示:
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = 45.678909
lng = -14.45667
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)
但是,当我在循环中以编程方式使用它时,浏览器会抛出错误:指定了无效或非法的字符串“code:”12 ,并且无法正常工作。
循环的简化示例如下:
[[lat:45.678909,lng:-14.45667],[lat:32.56433,lng:22.4566]].each{
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = '"${it.lat}"'
lng = '"${it.lng}"'
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)
}
任何想法为什么会发生这种情况? 谢谢!
答案 0 :(得分:0)
如果删除引号,我认为它应该有用。
location = {
lat = it.lat
lng = it.lng
}
基督教