0
我面對使用Grails 2 submitToRemote標籤的問題。Grails的2.0更新選擇與submitToRemote和渲染
下面的代碼是我在控制器中使用:
def getProposal = {
def layouts = importService.getLayoutsFor(params.product as int)
render(contentType: "text/xml") {
for (layout in layouts) {
option("${layout}")
}
}
}
,並在GSP:
<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>")
它的工作原理。
在這兩種情況下,預期的應答傳送回。
我不明白爲什麼它不會與第一更好的方法工作。任何人都可以解釋我做錯了什麼?
THX
編輯:
我注意的是,如果我使用渲染(contentType中: 「文本/文本」)相反,它會奏效。可能它有什麼要做,XML的格式不正確(沒有根節點?)。但爲什麼它在Grails 1.3.7中起作用?