2015-05-06 84 views
1

我想添加一些代码到我的ajax调用的statusCode函数,虽然只是不能!无法获得ajax状态代码404

我已经通过error()函数管理了一个解决方法,但是我只想专门处理404个案例。任何帮助将不胜感激!

请帮助: https://jsfiddle.net/9pyk5vmh/

var arr = ['http://pbs.twimg.com/media/CEPW00rVA5.jpg', 
    'http://pbs.twimg.com/media/CEO6b85UsAEBhzI.jpg', 
    'http://pbs.twimg.com/media/CEAQweFUUAAP8yP.jpg', 
    'http://pbs.twimg.com/media/CD_5TzEUgAEVkus.jpg', 
    'http://pbs.twimg.com/media/CD_oB24UsAAO-li.jpg', 
    'http://pbs.twimg.com/media/CD_iyBDUkAAUyW-.jpg', 
    'http://pbs.twimg.com/media/CD_iZvKUUAAPygN.jpg', 
    'http://pbs.twimg.com/media/CD_fzKSUkAEaUdD.jpg' 
]; 

for (var i in arr) { 
    var url = arr[i]; 
    //console.log(i); 
    $.ajax({ 
     type: "HEAD", 
     url: url, 
     async: true, 
     statusCode: { 
      404: function() { 
       alert('404!'); 
      } 
     }, 
     error: function (message, text, response) { 
      arr.splice(i, 1); 
     } 
    }); 
} 

for (i in arr) { 
    var img = $('<img>'); //Equivalent: $(document.createElement('img')) 
    img.attr('src', arr[i]); 
    img.appendTo('#imagediv'); 
} 

回答

0

我认为这个问题是不相关的阿贾克斯,但跨域请求(CORS)。

基本上在上述情况下你是一个Ajax调用到其他域,浏览器不允许你最终与statusCode 0的

您需要在服务器上启用CORS,所以它可以允许来自浏览器的Ajax呼叫