$.ajax({
type: "POST",
url: "/Controller/Methods/" + $('#FrameworkId').val() + "/10/" + $('#category').val(),
success: function(data) {
alert("sucess")
},
error:function(data) {
alert(data.statuscode)
}
});
在服务器端
假设在服务器端我正在做的动作
filterContext.HttpContext.Response.StatusCode = 401;
throw new UnauthorizedAccessException("Login_Expired");
仍然alert(data.statuscode)
给出500
如果设置401,我该怎么办?
答案 0 :(得分:2)
不要在动作过滤器中抛出异常。
无论如何,您的动作过滤器的性质是什么?这是一个example of an exception filter,它将400返回给客户端。
不是直接相关,而是仅供参考。作为Asp.net MVC框架一部分的HttpUnauthorizedResult
以同样的方式实现:
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
context.HttpContext.Response.StatusCode = 0x191;
}
如您所见,它只返回适当的状态代码。 不会抛出异常。