我正在尝试使用 jQuery ajax 来调用 web api 方法。使用非常基本的方法,我无法让 ajax 调用返回正确的响应。我尝试了多种方法,认为这可能是响应,但没有运气。
这是我的代码:
网络 API
// POST api/token
public Token Post(User user)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized));
}
jQuery
$.ajax({
url: http://myUrl/api/token',
type: 'POST',
dataType: 'json',
data: data,
success: function () {
},
error: function (request, status, error) {
alert(request.status);
//request.status is always 0, I am expecting 401
}
});
我也尝试过使用:
.done(function() {
})
.fail(function(data) {
//status code is always 0 instead of expected 401
});
和:
statusCode: {
401: function () {
//Never gets hit
},
}
当我在 FF 中使用 Firebug 检查响应时,我在控制台中收到了正确的响应:
POST http://myUrl/api/token 401 Unauthorized
因此,状态代码始终为 0 或 401 statusCode: 永远不会被命中。我做错了什么和/或我需要做什么才能正确捕获客户端上的 401 错误?