OpenRasta - 将错误编码为 JSON 而不是 HTML

标签 openrasta

我注意到 OpenRasta.Core 有一个 HtmlErrorCodec,它负责在处理程序抛出异常时呈现服务器错误页面。

当我向异常抛出处理程序发出 JSON Ajax 请求时,会选择此编解码器并将异常呈现为 HTML。

我尝试使用 MediaType("application/json") 为 IList 注册我自己的 IMediaTypeWriter,这样我就可以将 JSON 发送回浏览器,但它似乎被忽略了。谁能帮忙?

谢谢 尼尔

最佳答案

如果出现错误,确实会选择带有 IList 的编解码器,但会按照类型的正常连接。

我建议查看请求日志并找出选择 html 编解码器的方式和原因(我怀疑我的远程调试隧道视觉可能会让浏览器发送相当于 Accept : text/html,application/json,此时 OR 并不知道两者中哪一个是可以接受的,这可能是一个错误,因为我们注册 text/html 的 q 为 1,而 q 应该是 0.5) .如果这确实是问题所在,解决方案是删除 html 错误编解码器的注册,您可以通过提供自己的 DependencyRegistrar 来完成。

关于OpenRasta - 将错误编码为 JSON 而不是 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250554/

相关文章:

rest - 如何在 REST 中支持部分更新 (PATCH)

c# - 在 OpenRasta 处理程序中处理异常时,转换为响应的最佳方法是什么?

c# - OpenRasta 可以与现有的 Web 应用程序一起运行吗?

http-headers - ELMAH-如何使用错误日志记录HTTP请求正文和HTTP请求 header ?

OpenRasta - 将参数传递给自定义编解码器

rest - 使用 OpenRasta 将图像作为流或字节数组获取

IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展

openrasta - OpenRasta入门

OpenRasta 错误请求不会以 JSON 形式返回