2012-03-02 111 views
5

我使用此代码通过他们的API来从Twitter获取的一些信息:检查jQuery的404个错误状态

 $.ajax({ 
      url : apiUrl, 
      cache : false, 
      crossDomain: true, 
      dataType: "jsonp", 
      success : function(html) { 
       // ... 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
       console.log(jqXHR); 
      } 
     }); 

但是,如果apiUrl变量提供了一个正确的URL,该代码做工精细,E.I.成功对象被执行,但如果url不正确,e.i.从twitter返回404错误,错误对象从不执行。它不会在控制台中记录任何内容。在这种情况下,我应该如何检查404错误状态?

+0

这可能会解决这个问题:http://stackoverflow.com/questions/4281274/jquery-ajax-404-handling – Smamatti 2012-03-02 13:51:42

+1

给出不正确的URL – JamesHalsall 2012-03-02 13:52:25

+0

HTTP的例子://计算器。 com/a/4803044/137972可能是相关的。 – Christoffer 2012-03-02 13:54:59

回答

3

从jQuery的API文档的ajax:

error option

注:该处理器没有要求跨域脚本和JSONP 请求。

http://api.jquery.com/jQuery.ajax/

+0

对不起,我的错不读这个...谢谢 – 2012-03-02 14:22:34

2

根据文档,使用statusCode设置为.ajax

$.ajax({ 
    ... 
    statusCode: { 
    404: function(){ 
    } 
    } 
}); 
+0

nop,这不会被执行。恐怕第一个回复这个主题是正确的... http://forum.jquery.com/topic/jquery-ajax-with-datatype-jsonp-will-not-use-error-callback-if-request -fails – 2012-03-02 14:03:24