使用AJAX请求检查图像是否存在 - 无法绕过MIME类型检查

时间:2015-08-06 20:22:36

标签: javascript jquery ajax jsonp mime-types

我想加载图片,如果它存在,则将其弹出到DIV中。

img_width = 350;
img_height = 350;
img = "http://assets.absolutdrinks.com/drinks/transparent-background-white/"+img_width+"x"+img_height+"/" + drink.id + ".png";
img_html = "<div class='drink_img' id='"+drink.id+"_img'></div>";


$.ajax({
    url:img,
    jsonp: false,
    jsonpCallback: 'jsonpCallback',         
    success:function(img){
        $("#" + drink.id + "_img").html("<img src = '"+ img +"'>");
    },
    error:function(err){
        console.log(err.status + " " + err.statusText);
        $("#" + drink.id + "_img").addClass('no_img');
    },
    cache:true,
    dataType:'jsonp'
});

我遇到了两个问题,一个是如果类型设置为image/png(或jsonp以外的任何其他问题),则Chrome的原始控件会将其停止。将其设置为jsonp然后添加&#39;?callback = ..&#39;到图像网址 - 导致图像未加载。通过添加选项

cache:true, 
jsonp: false,
jsonpCallback: 'jsonpCallback'

然后使用正确的网址,但现在我得到了

Refused to execute script from -- because its MIME type ('image/png') is not executable.

我已将nosniff HTTP标头添加到页面中,但仍然没有运气。

0 个答案:

没有答案