asp.net MVC / jQuery Ajax返回500 Exception而不是JSON Result

时间:2013-08-08 14:48:47

标签: jquery asp.net ajax json jqxhr

我在所有中间层控制器操作中都有一个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异常**

2 个答案:

答案 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>