我在所有中间层控制器操作中都有一个asp.net MVC 2 Web应用程序我捕获所有异常,记录,然后重新抛出异常。此重新抛出由JQuery Ajax错误处理程序
获取throw new Exception(e.Message);
我正在通过像这样的JQuery进行ajax调用
jQuery.ajax({ url: '/controller/action',
success: function(data) { },
error: function(jqXHR, textStatus, errorThrown) {
var error_json = JSON.parse(jqXHR.responseText); // this is returning error
var html_error = error_json["Message"];
}
});
由于某种原因,jqXHR.responseText不再返回任何内容,我在解析responseText时遇到错误。我认为它可能是一个IIS设置,因为我们最近切换到一个新的网络服务器。 **看看Firebug,没有正常的JSON响应。我只是将服务器响应视为500异常**
答案 0 :(得分:0)
看起来这是一个IIS 7设置。在错误页面 - >编辑功能设置 - >选择详细错误。 -
答案 1 :(得分:0)
尝试将其添加到web.config。当返回JsonResult AND statusCode = 500 AND errorMode!=详细信息时,返回的json中的responseText将是html代码中的“内部服务器错误”,而不是json字符串。
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>