Ajax检查服务器上是否存在文件无效

时间:2016-11-01 03:04:01

标签: jquery ajax

$imageURL = "/root/development/servers/account_" + $accountID + "/social_" + $socialCount + "/bots/" + $botName + "_" + ($id + 1) + ".png";
$.ajax ({
    url: $imageURL,
    success: function() {
        alert("1");
    },
    error: function() {
        alert("0");
    }
});

这是我正在使用的代码,即使我的文件存在,它也总是提醒0(我在文本字段中显示完整路径并提醒它检查)。我在谷歌上发现的一切都说这是做到这一点的方式,那些过时了吗?我是否必须授予特定权限才能看到该文件?这可能会出错?感谢。

3 个答案:

答案 0 :(得分:0)

试试这个java脚本图片功能:

var image = new Image(); 
image.src = $imageURL;
if (image.width == 0) {
  alert("no image");
}

或尝试这个:

$.ajax ({
    url: $imageURL,
    type: "HEAD",
    success: function() {
        alert("1");
    },
    error: function() {
        alert("0");
    }
});

答案 1 :(得分:0)

你可以尝试以下功能:

用于检查服务器上存在文件的常用功能:

function imageExists(image_url){

    var http = new XMLHttpRequest();

    http.open('HEAD', image_url, false);
    http.send();

    return http.status != 404;

}

并提出如下请求:

$.get(image_url)
    .done(function() { 
        // Do something now you know the image exists.

    }).fail(function() { 
        // Image doesn't exist - do something else.

    })

希望它可以帮助你..

由于

答案 2 :(得分:0)

这是我的简单解决方案,其状态代码请求返回。

$.ajax ({
    url: 'https://fiddle.jshell.net/img/logo.png',
    statusCode: {
        200: function() {
            alert( "image found" );
        },
        404: function() {
            alert( "image not found" );
        }
    }
});