成功和错误回调都在任何时候使用

时间:2011-03-29 14:30:48

标签: ajax jquery http-status-code-404 jquery-mobile

我有一个简单的代码检查图片网址是否有效。不幸的是,无论是否找到图像,我都会得到错误和成功的回调。

var url = obj.image;
$.ajax({
    url: url,
    async:false,
    success: function(data){
        console.log('success');
    },
    error:function (xhr, ajaxOptions, thrownError){
        console.log('error');
    }                             
});

图像: http://images.virtualdesign.pl/images/21422jqerrors.png

我正在使用jquery 1.4.3和jquery mobile 1.0a3。

1 个答案:

答案 0 :(得分:2)

我建议不要为此目的使用 Ajax请求。我会去

function checkImage(url, succ, err) {
    var checkImg = new Image();
    checkImg.src = url;
    checkImg.onerror = function() {
        console.log('error');
        err();
    };
    checkImg.onload = function() {
        if(!this.width || !this.height) {
           console.log('error'); 
           err();
        }
        else {
            console.log('success');
            succ();
        }
    };
}

使用它像:

checkImage('http://mydomain/images/foo.jpg', function() {
    alert('yay');
}, function() {
    alert('oops');
});

演示http://jsfiddle.net/9RxrA/