Ajax错误消息仅显示状态

时间:2014-09-24 08:42:17

标签: ajax asp.net-mvc error-handling

我有一个ASP.NET MVC网站。

我有一个Ajax请求,如果出现问题我想显示自定义错误。

在我的控制器中:

catch (Exception e)
  {
      Response.StatusCode = (int) HttpStatusCode.BadRequest;
      Response.Write(e.Message);
      return null;
  }

在Javascript中:

error: function (xhr) {
    $("#ErrorDetails").html(xhr.responseText);
}

我不知道这是否是一种好方法,但是当我在调试中本地尝试时,我会收到完整的错误消息。

但如果我主持网站,我只会得到错误的请求"而不是消息。

知道为什么以及如何解决它?

2 个答案:

答案 0 :(得分:1)

我不确定它是否适用于您的方案,但请尝试将以下内容添加到<system.web>下的 web.config 文件中:

<system.web>
    <customErrors mode="Off" />
  ...
</system.web>

默认情况下,customErrors模式设置为 RemoteOnly ,这意味着本地呼叫者会收到完整的异常信息;远程呼叫者接收过滤的异常信息。

查看更多under this link

答案 1 :(得分:0)

我尝试使用javascript ajax(jQuery)代码并能够收到错误消息。

 jQuery(function ($) { 
        $.ajax({ 
            url: "/Home/GetData", 
            type: "GET", 
            dataType: "text", 
            success: function () { 
                alert("Success"); 
            }, 
            error: function (xhr) { 
               alert(xhr.responseText); 
            } 
        }); 
    }); 

托管网站后,您需要更新代码中的网址。你能证实它是否正确吗?