2011-08-30 3 views
3

OpenRasta.Core에는 처리기가 Exception을 throw 할 때 서버 오류 페이지를 렌더링하는 HtmlErrorCodec이 있습니다.OpenRasta - HTML이 아닌 JSON으로 인코딩 오류

예외 처리기에 JSON Ajax 요청을하면이 코덱이 선택되고 예외는 HTML로 렌더링됩니다.

내 자신의 IMediaTypeWriter를 IList에 등록하려고 시도했습니다. < > MediaType ("application/json")을 사용하여 JSON을 브라우저로 다시 보낼 수는 있지만 무시되는 것으로 보입니다. 누구든지 도와 줄 수 있습니까?

감사 닐

답변

1

, 사실은 IList와 코덱이 선택됩니다 오류가있는 경우, 그러나 유형을위한 정상 conneg를 따를 것이다.

요청 로그를보고 html 코덱을 선택하는 방법과 이유를 알아내는 것이 좋습니다 (원격 원격 디버깅 터널 비전으로 의심되는데 Accept: text/html,application/json에 해당하는 브라우저가있을 수 있습니다). 어떤 점이 OR이 실제로 어느 것이 수용 가능한지 알지 못합니다. 아마도 aq가 1 인 0.5로 text/html을 등록 할 때 버그 일 것입니다.) 이것이 실제로 문제가된다면 해결책은 html 오류 코덱 등록을 제거하는 것입니다.이 코덱은 자체 DependencyRegistrar를 제공하여 수행 할 수 있습니다.

+0

그래, 정렬! 수락 헤더에 문제가 있었고 JQuery를 사용해야했습니다. 또한 경우에 대비해 q = 1.0을 갖기 위해 내 코덱을 부딪 혔습니다! 고마운 친구 –

1

방금 ​​당신의 예외를 포착 유형에서 그들을 포장과 같은 작업을 수행 할 수 있습니다

ResourceSpace.Has.ResourcesOfType<MyErrorWrapper>().WithoutUri.AsJsonDataContract() 
+0

예, 가능하지만 이미 이상한 유형의 리소스를 생성하여 OpenRasta의 내부 오류 처리를 사용하고 싶습니다.