我有一个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);
}
我不知道这是否是一种好方法,但是当我在调试中本地尝试时,我会收到完整的错误消息。
但如果我主持网站,我只会得到错误的请求"而不是消息。
知道为什么以及如何解决它?
答案 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);
}
});
});
托管网站后,您需要更新代码中的网址。你能证实它是否正确吗?