我注意到OpenRasta.Core有一个HtmlErrorCodec,负责呈现处理程序抛出异常时发出的服务器错误页面。OpenRasta - 将错误编码为JSON而不是HTML
当我向异常抛出处理程序发出JSON Ajax请求时,将选中此编解码器并将异常呈现为HTML。
我试图注册自己IMediaTypeWriter为IList的<错误>用的MediaType(“应用/ JSON”),所以我可以发送回JSON的浏览器,但它似乎被忽略。谁能帮忙?
感谢 尼尔
我注意到OpenRasta.Core有一个HtmlErrorCodec,负责呈现处理程序抛出异常时发出的服务器错误页面。OpenRasta - 将错误编码为JSON而不是HTML
当我向异常抛出处理程序发出JSON Ajax请求时,将选中此编解码器并将异常呈现为HTML。
我试图注册自己IMediaTypeWriter为IList的<错误>用的MediaType(“应用/ JSON”),所以我可以发送回JSON的浏览器,但它似乎被忽略。谁能帮忙?
感谢 尼尔
如果有错误,确实有IList中编解码器将被选中,但会遵循正常的连接类型。
我建议看看请求日志,并找出如何以及为什么HTML编解码器被选中(我怀疑用我的远程调试隧道的愿景,你可能有一个浏览器发送相当于Accept: text/html,application/json
,在哪一点OR并不真正知道哪一个是可以接受的,这可能是一个bug,因为我们注册了text/html,其中aq为1,它应该是0.5)。如果这确实是问题所在,解决方法是删除html错误编解码器的注册,您可以通过提供您自己的DependencyRegistrar来完成注册。
你能正好赶上你的异常,在类型包装他们,这样做:
ResourceSpace.Has.ResourcesOfType<MyErrorWrapper>().WithoutUri.AsJsonDataContract()
是的,这是可能的,但我最好想利用OpenRasta的内部错误处理,我认为已经生成了一个类型为IList的资源
是的,排序!与accept头有关的问题,不得不乱用JQuery。也碰到我的编解码器有q = 1.0以防万一!谢了哥们 –