javascript - 通过jquery ajax检查图像是否存在?

标签 javascript jquery ajax

此脚本使用 API 访问数据库中的信息,并为数据库中的随机人员显示“聚光灯”,其中包括他们的姓名、照片和简短的个人简介。

我正在尝试编写此脚本来检查图像是否存在。如果图像存在,则脚本应继续,但如果图像不存在(404 错误),则应重新滚动并再次检查。我在理解如何使用 ajax 的异步部分时遇到问题。

        function checkImage(imgurl){
           function headRequest(url){
               return $.ajax({  //Makes a HEAD request for the image
                   url: url,
                   type: 'HEAD'
               });
            };
            headRequest(imgurl)
            .done(function(){
                return true; //image exists
             })
            .fail(function(){
                return false; //HEAD request returns 404
             });
        };

    //if image does not exist or person.biography is undefined, reroll
    while (!checkImage(imgsrc) || person.biography == undefined) {
        //select random person
    }

最佳答案

必须使用回调! (您无法从异步调用返回)

function checkImage(imgurl, callback){
       function headRequest(url){
           return $.ajax({  //Makes a HEAD request for the image
               url: url,
               type: 'HEAD'
           });
        };
        headRequest(imgurl)
        .done(function(){
            callback(true); //image exists
         })
        .fail(function(){
            callback(false); //HEAD request returns 404
         });
 };

并调用该函数:

checkImage(imgsrc, function(exists) {
    //exists is what you passed into the callback
    if (exists) { //do stuff

    } else {
        //doesnt
    }
});

关于javascript - 通过jquery ajax检查图像是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750924/

相关文章:

javascript - 如何配置 webpack 3.5.4 只为 JS 创建源映射,并跳过 CSS?

java - 在 Struts2 中使用 AJAX 根据另一个选择菜单填充一个选择菜单

javascript - ajax 请求中 json key 未正确发送

jquery - 使用 jQuery 动态调整容器内图像的大小

php - 分离 Web 应用程序各部分的经验法则

ajax - Datatables ajax 异常后的自定义错误消息

javascript - Javascript 中的 boolean 求值规则是什么?

javascript - 根据数据库中的值动态设置背景颜色

javascript - Bootstrap 按钮 onclick 不起作用

javascript - 未捕获的类型错误 : Cannot read property 'match' of undefined