2012-01-04 3 views
0

Grails 2 submitToRemote 태그를 사용하는 데 문제가 있습니다. GSP를Grails 2.0 업데이트 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 

없는 작품을

다음 코드는 내가 컨트롤러에서 사용하는 것입니다 오류가 반환됩니다 :

작동

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

: 내가 사용하는 경우

는하지만 다른 같은 방법을 렌더링합니다.

두 경우 모두 예상되는 응답이 다시 전송됩니다.

첫 번째 멋진 방식으로 작동하지 않는 이유를 알지 못했습니다. 아무도 내가 뭘 잘못 설명 할 수 있을까?

들으

편집 :

내가 렌더링 사용하는 경우 (contentType이는 "텍스트/텍스트") 주목

대신이 작동합니다. xml의 ​​형식이 올바르지 않습니다 (루트 노드가 없습니까?). Grails 1.3.7에서는 왜 작동합니까?

답변

0

Grails 1.3.7에는 다른 기본 자바 스크립트 공급자 (프로토 타입)가 있습니다. jquery ajax 호출은받은 내용을 기반으로 응답 유형을 추측합니다.

관련 문제