1

<g:javascript>我最近将我的 Grails 安装从 2.2 更新到 2.3.1,并在尝试在环境中使用 groovy 表达式获取一些 json 数据结构时遇到错误。

这是一个例子:

<g:javascript>
  var foo = ${ bar as grails.converters.JSON };
  doSomeStuff();
</g:javascript>

这会将整个 JSON 字符串转义为 unicode 字符 ( \u005b\u007bid:1\u002c name:.....)。如何获得原始字符串。正如文档指出的那样:我尝试使用raw()关键字。但没有运气。我没有更改任何与 XSS 相关的配置。那是我的配置:

grails.views.default.codec = "none"
grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding = "UTF-8"

编辑:

在修复此错误之前,我的临时解决方案:

$.parseJSON(decodeURIComponent(uglyUnicodeString))

4

2 回答 2

2

这是一个错误。请参阅此问题和链接的问题:

http://jira.grails.org/browse/GRAILS-10641

于 2013-11-01T18:20:35.100 回答
1

我遇到过同样的问题。我的解决方案是:

<g:javascript>
    var foo = ${ bar.encodeAsJSON() };
    doSomeStuff();
</g:javascript>
于 2015-05-07T14:59:44.447 回答