【问题标题】:Grails 2.0 update select with submitToRemote and renderGrails 2.0 使用 submitToRemote 更新选择并渲染
【发布时间】:2012-01-04 15:19:38
【问题描述】:

我在使用 Grails 2 submitToRemote 标签时遇到问题。

以下代码是我在控制器中使用的:

def getProposal = {
    def layouts = importService.getLayoutsFor(params.product as int)
    render(contentType: "text/xml") {
        for (layout in layouts) {
            option("${layout}")
        }
    }
}

在普惠制中:

<g:submitToRemote action="getProposal" update="layouts"
    onLoading="showProgress();" onComplete="hideProgress();"
    value="Do It" />
<select id="layouts" name="layout" required="">
</select>

使用 jquery 会导致:

showProgress();;jQuery.ajax({type:'POST',data:jQuery(this).parents('form:first').serialize(), url:'/app/controller/getProposal',success:function(data,textStatus){jQuery('#layouts').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){},complete:function(XMLHttpRequest,textStatus){hideProgress();}});return false

这不起作用并返回错误:

Node cannot be inserted at the specified point in the hierarchy

但如果我使用另一种渲染方法,例如:

render(status: 0, text: "<option value='1'>Layout 1</option>")

它有效。

在这两种情况下,预期的答案都会被传回。

我不明白为什么它不适用于第一个更好的方法。谁能解释我做错了什么?

谢谢

编辑:

我注意到如果我使用 render(contentType: "text/text") 代替它会起作用。可能与xml格式不正确(没有根节点?)有关。但为什么它可以在 Grails 1.3.7 中工作?

【问题讨论】:

    标签: grails groovy gsp


    【解决方案1】:

    Grails 1.3.7 有一个不同的默认 javascript 提供程序(原型)。 jquery ajax 调用尝试根据接收到的内容推断响应的类型

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多