小编Val*_*lin的帖子

始终使用HttpResponseMessage 401在ajax帖子上取得成功

我总是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/

c# ajax jquery httpresponse asp.net-web-api

8
推荐指数
3
解决办法
4665
查看次数

标签 统计

ajax ×1

asp.net-web-api ×1

c# ×1

httpresponse ×1

jquery ×1