我总是statusCode=200在客户端获得ajax帖子,而服务器则回答HttpStatusCode.Unauthorized.
我的控制器代码:
public class AccountApiController : ApiController
{
public HttpResponseMessage Login(HttpRequestMessage request, [FromBody]LoginViewModel loginModel)
{
return request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Unauthorized login.");
}
}
Run Code Online (Sandbox Code Playgroud)
我的ajax代码:
$.ajax({
url: '/api/accountapi/login',
type: 'POST',
data: data
})
.done(function (object, status, xhr) {
alert("Success: " + xhr.status + " : " + xhr.statusText);
})
.always(function (object) {
$("#output").text(JSON.stringify(object, null, 4));
});
Run Code Online (Sandbox Code Playgroud)
结果:带文本Success: 200 : OK
和输出窗口的警报:
{
"Message": "Unauthorized login."
}
Run Code Online (Sandbox Code Playgroud)
所以,我可以得到文本错误消息,但我需要让HttpStatusCode来处理错误语句.请帮帮我.
有关此问题的更多信息以及来自Brock Allen的优雅解决方案:http: //brockallen.com/2013/10/27/using-cookie-authentication-middleware-with-web-api-and-401-response-codes/