jquery - Web API和jQuery ajax没有收到正确的错误

标签 jquery ajax error-handling asp.net-web-api

我正在尝试使用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

因此,饱和状态代码始终为0或从未命中401 statusCode:。我在做什么错和/或为了正确捕获客户端上的401错误需要做什么?

最佳答案

我终于找到了问题。 $ .ajax不喜欢跨域调用。将“Access-Control-Allow-Origin:*”添加到我的REST POST方法的响应 header 后,便可以获取正确的数据。

关于jquery - Web API和jQuery ajax没有收到正确的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18550072/

相关文章:

jquery - 如果自定义 Nivo 导航中的图像少于六个,如何隐藏下一个 anchor ?

ajax - $fn.yiiGridView.update 调用多个网格

node.js - Nodejs Express转发路由到中间件的错误

c# - WebApi2 OData返回自定义错误对象

javascript - 单击按钮后如何清除backbone.js 中的文本字段?

javascript - 使用 JavaScript 更改 <iframe> 的来源

javascript - 执行 2 个异步 AJAX 请求,一个接一个

python-3.x - 如何改进我的错误处理,以便正确处理 Tweepy 中的异常 StopIteration 并且可以继续执行?

javascript - 如何根据TD内容将CSS应用于TR的 child ?

javascript - 页面上的多个更新面板从文本框中删除 JavaScript Datepicker 日历