我想在将图像插入网站之前确定图像是否存在。
我已经尝试了所有方法here,并且所有方法都返回了我知道存在的图像的否定值。例如:
$.ajax({
url:'https://s3-eu-west-1.amazonaws.com/stuffstory-v2-filepicker/thumbnails/5547b98e357a7f425f8b4570/555340a1357a7f673a8b456b.png',
type:'HEAD',
error:
function(){
console.log('No image')
},
success:
function(){
console.log('There is an image')
}
});
返回无图像结果,但是当您按照链接时:Image它显然在那里。
我完全不知道为什么。
答案 0 :(得分:4)
CORS
安全策略阻止了您的跨域AJAX请求:
否'访问控制 - 允许 - 来源'标头出现在请求的资源上。
答案 1 :(得分:3)
您可以使用Image
:
var imageUrl = 'https://s3-eu-west-1.amazonaws.com/stuffstory-v2-filepicker/thumbnails/5547b98e357a7f425f8b4570/555340a1357a7f673a8b456b.png';
var img = new Image();
img.onload = function(){
// will be called if image exists
};
img.onerror = function (){
// will be called if image failed to download
};
img.src = imageUrl;
这样可以跨域下载图像。 另请参阅Image on MDN。
答案 2 :(得分:0)
如 @crashet
所述否'访问控制 - 允许 - 来源'标题出现在请求的上 资源。
替代方案:
使用class Foo {
String name
}
class Bar {
String name
}
def foobar(field, className) {
def instance = className.findByName(jsonParams.field)
if(!instance) {
instance = new className(name: jsonParams.field)
}
return instance
}
foobar(foos, Foo)
foobar(bars, Bar)
活动
如果在加载图片时发生错误,请执行JavaScript:
<强> HTML:强>
onerror
<强> JS:强>
<img src="https://s3-eu-west-1.amazonaws.com/stuffstory-v2-filepicker/thumbnails/5547b98e357a7f425f8b4570/555340a1357a7f673a8b456bewweweg" onerror="imgError()" />
<强> JSFiddle Demo 强>
答案 3 :(得分:0)
您正在调用与您的应用在不同域上的请求,这就是为什么它限制了这一点。如果您打开控制台窗口,您将看到错误。 你需要用cors实现这个目标。参考http://www.html5rocks.com/en/tutorials/cors/
答案 4 :(得分:0)
您可以使用jsonp请求加载跨域资源,例如您的案例中的图像
答案 5 :(得分:0)
您可以这样做:
sed -i 's/user_pref("network.proxy.type", 0);/user_pref("network.proxy.type", 1);/' /home/.mozilla/firefox/xxxx.default/prefs.js