2012-05-23 2 views
20

명시 적으로 "text/json" 지정없이 속기 방법을 사용할 수 있습니까? 당신은 당신이 다른 매개 변수 등을 지정할 수 없습니다 render에 변환 매개 변수를 사용하는 경우Grails에서 HTTP 상태 코드로 JSON을 렌더링하는 쉬운 방법

def remoteError = {  
    render(status: 500, contentType: "text/json"){ 
     error(exception: "a remote exception occurred") 
    } 
} 
내가 as JSON 사용하여 시도

은 ...

render(status: 500, exception: params.exception) as JSON 

답변

37

... 아무 내용도 반환되지 않고 상태 코드가 정확한지 gsp 뷰를 사용할 때 일반적으로하는 것과 같은 상태입니다. 당신은 그러나 사전 렌더링 호출에 응답 상태를 설정할 수 있습니다 params.exception`는 문자열`때문에

response.status = 500 
render([error: 'an error occurred'] as JSON) 
+1

이 실제로 캐스트 예외가 발생합니다. 나는'def errorMsg = [error : 'error occurred']''errorMsg as JSON'을 시도해 보았다. – raffian

+1

@Raffi 물론, 나는 작동하지 않을 문자열 대신 맵을 렌더링하도록 내 대답을 변경했습니다. – krock

+1

은 약간의 조정을해야했다.'render ([error : 'sdf'] as JSON)', 팁은 thx – raffian

2
render(status:500,text:(errors as JSON).toString(),contentType: 'application/json') 
관련 문제