jQuery ajax 错误回调未触发

标签 jquery ajax error-handling callback

我正在使用 ajax 请求一个 URL,该 URL 会产生 HTTP header 代码 500。我希望这会触发错误函数:

    $.ajax({
  url: "http://xxx",
  dataType: "jsonp",
  crossDomain: true,
  success: function( data ) {
        alert('success');
  },
  error: function () {
        alert('error');
  }
});

这在 safari 中有效,但在 Chrome 和 Firefox 中失败。

我做错了什么?

这是最新的jquery 1.4.X,由于原因我无法升级到更高版本..

响应发送 HTTP 代码 500,内容类型 application/json 和内容:

jsonp1310063232212({"error":{"reason":"找不到用户"}})

最佳答案

如 JQuery 文档 [1] 中所述,不会为跨域脚本和 JSONP 请求调用错误处理程序。它在旧版本的 JQuery 上工作(并不总是)。

我使用一个紧凑而有效的插件来解决这个问题,其中包括一个很好的错误处理程序: http://code.google.com/p/jquery-jsonp/

下载并添加到头部:

<script src="javascripts/jquery.jsonp-2.2.0.min.js" type="text/javascript"></script>

然后你可以使用类似于$.ajax()的函数$.jsonp():

$.jsonp({
    url: "http://xxx?callback=?",
    data: {
        var: 'test'
    },
    cache: false,
    success: function(data, textStatus) {
        // ...
    },
    error: function(xOptions, textStatus) {
        console.log('Error');
        // ...
    }
});

[1] http://api.jquery.com/jQuery.ajax/

关于jQuery ajax 错误回调未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615084/

相关文章:

Javascript - 检查序列化表单是否为空

javascript - 删除记录确认消息

javascript - 拖放(复制)到另一个 Div 中正在排队

php - AJAX POST文件上传控件到PHP文件

javascript - 如何通过右键单击更改行的背景颜色

php - 如何通过 XMLHTTPRequest 对象发布值?

javascript - Ajax Post 参数名称中带有 [ ]

error-handling - Catalyst框架HTML::Formhandler shows vadiate errors, when using HTML GET to Access the Site

python - 处理 Tweepy api 返回的 420 响应码

c++ - 使用两个链表