【问题标题】:Grails 2.3 expression output error in g:javascript environmentg:javascript 环境中的 Grails 2.3 表达式输出错误
【发布时间】:2013-11-12 13:41:02
【问题描述】:

我最近将我的 Grails 安装从 2.2 更新到 2.3.1,并在尝试使用 <g:javascript> 环境中的 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))

【问题讨论】:

  • 看来&lt;g:javascript&gt; 应该有输出原始内容的选项。你能用一个例子打开一个 JIRA 吗?

标签: json grails gsp


【解决方案1】:

我有同样的问题。我的解决方案是:

<g:javascript>
    var foo = ${ bar.encodeAsJSON() };
    doSomeStuff();
</g:javascript>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2013-10-22
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      相关资源
      最近更新 更多