jQuery ajax を使用して Web API メソッドを呼び出そうとしています。非常に基本的な方法を使用すると、適切な応答を返す ajax 呼び出しを取得できません。私はそれが応答かもしれないと考えて複数の方法を試しましたが、うまくいきませんでした。
これが私のコードです:
Web 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
そのため、satus コードが常に 0 であるか、401 statusCode: がヒットすることはありません。クライアントで 401 エラーを適切にキャッチするには、何が間違っているのでしょうか。また、何をする必要がありますか?