在我的JS中我有:
$.post("/Controller/MyAction", { myData: data })
.done(function (data) {
})
.fail(function (xhr, status, err) {
alert(xhr.responseText);
});
在我的控制器中我有:
[HttpPost]
public void MyAction(MyTest data)
{
var response = DoSomething(data);
if (!response.IsSuccessStatusCode)
{
throw (new Exception(response.ReasonPhrase));
}
}
但是我在web.config中打开了customErrors。它似乎正在拦截投掷,而不是收到401消息,我收到了500条消息。
如何从MVC HttpPost(打开customErrors)向jQuery返回错误?
答案 0 :(得分:0)
您可以在Response中明确设置StatusCode。
[HttpPost]
public void MyAction(MyTest data)
{
var response = DoSomething(data);
if (!response.IsSuccessStatusCode)
{
Response.StatusCode = 401;
}
}
这将转到$.post
方法的fail
处理程序。