【问题标题】:asp.net MVC / jQuery Ajax returning 500 Exception not JSON Resultasp.net MVC / jQuery Ajax 返回 500 异常而不是 JSON 结果
【发布时间】:2013-08-10 08:21:45
【问题描述】:

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

【问题讨论】:

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

标签: jquery asp.net ajax json jqxhr


【解决方案1】:

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

<system.webServer>
    <httpErrors errorMode="Detailed" />
</system.webServer>

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 2013-12-16
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      相关资源
      最近更新 更多