我正在开发MVC3上的rest API
每当验证出现问题时,我想抛出描述错误的500 + json (json可以是未经验证的字段列表)。
问题是json在html内部返回,其中包含整个HttpExeption
(Server Error in '/' Application.
)
如果我把filterContext.ExceptionHandled = true;
消息清理干净,但客户端无法看到他身边的500错误。
这种情况:https://stackoverflow.com/a/4707762/936651实际上是html并给客户端提供了干净的json,但也删除了500错误。
答案 0 :(得分:1)
您可以在自定义错误处理程序seen here
内设置状态代码为500:
filterContext.RequestContext.HttpContext.Response.StatusCode = 500;
并在客户端:
$.ajax({
url: '/home/foo',
success: function (result) {
alert('success');
},
error: function (jqXHR, textStatus, errorThrown) {
var json = $.parseJSON(jqXHR.responseText);
// TODO: do something with the json that was returned from the server
}
});