处理未定义的错误JQuery GetJson

时间:2018-02-15 22:42:17

标签: jquery

我使用getJSON()查询在线平面图像数据库并返回链接和图像网址。我的问题是,如果该项目不在数据库中,我将在控制台上收到此错误:

  

无法阅读财产' 0'未定义的。

我已将var error = res.status

一起使用
if (error == "404") {   
    $("#image").attr('src', "placeholder.jpg");
}

显示没有图片但没有图片的默认图片。以下是服务器响应的两个示例:

错误:

  

{" status":404,"错误":"未找到飞机缩图。"}

数据库中的图片:

{"status":200,"count":1,"data":[{"image":"http:\/\/www.airport-data.com\/images\/aircraft\/thumbnails\/001\/369\/001369561.jpg","link":"http:\/\/www.airport-data.com\/aircraft\/photo\/001369561.html","photographer":"magnaman"}]}

我的问题是我如何解决未定义的错误或显示默认图像(如果它不在数据库中)

提前致谢

  var imgUrl
$.get('http://192.168.1.64:8080/VirtualRadar/AirportDataThumbnails.json?icao='+value.Icao, function(res) {
    var imgUrl = res.data[0].image
    var error = res.status
    var imgHref = res.data[0].link

    if (error == "404") {
        $("#image").attr('src', "placeholder.jpg");
    } else {
        $("#image").attr('src', imgUrl);
                $("#image2").attr('src', imgUrl);
                $("#imageurl").attr('href', imgHref);
    }
})

1 个答案:

答案 0 :(得分:2)

如果出现错误,则没有res.data属性。您只能在else块中访问它。

$.get('http://192.168.1.64:8080/VirtualRadar/AirportDataThumbnails.json?icao=' + value.Icao, function(res) {
  var error = res.status;
  if (error == "404") {
    $("#image").attr('src', "placeholder.jpg");
  } else {
    var imgUrl = res.data[0].image;
    var imgHref = res.data[0].link;
    $("#image").attr('src', imgUrl);
    $("#image2").attr('src', imgUrl);
    $("#imageurl").attr('href', imgHref);
  }
})