0

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

4

2 回答 2

0

看起来这是一个 IIS 7 设置。在错误页面 --> 编辑功能设置 --> 选择详细错误。——</p>

于 2013-08-08T15:29:07.367 回答
0

尝试将此添加到 web.config。当返回 JsonResult AND statusCode = 500 AND errorMode != Details 时,返回的 json 中的 responseText 将是 html 代码中的“Internal Server Error”,而不是 json 字符串。

<system.webServer>
    <httpErrors errorMode="Detailed" />
</system.webServer>
于 2018-06-22T17:38:04.563 回答