使用AngularJS从不同服务器预加载图像

时间:2015-01-20 10:55:11

标签: angularjs cors preloading

背景:

我试图在AngularJS应用程序中预先加载一些图像,然后再将它们呈现给用户,以防止它们被剥离" in。我的预加载工具,用于在下载图像时返回已解决的承诺。

目前的做法:

目前,我正在使用简单的$http调用来下载图片。想象一下element<img>标记,其中包含我的图片:

$http.get("my/image/url.jpg")
  .then( function() { 
    $animate.enter(element);
  });

这似乎没问题,但如果有更好的方法,我会很感激。

问题

我认为我遇到了CORS的问题。此预加载器的一个应用是从twitter加载配置文件图片。当我这样做时,我的$http.get在控制台中抛出错误:

XMLHttpRequest cannot load https://path/to/img.jpg. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://my.server.com' is therefore not allowed access.

有没有办法预加载这种图像?

我已经创建了very simple plunkr来证明问题 - 您需要打开控制台才能看到错误。

1 个答案:

答案 0 :(得分:1)

使用其中一种标准方式预加载图片 - 屏幕上未显示的img标记仍会强制图像加载。

结合Angular,声音就像预加载器指令一样完美。

无需重新发明轮子,只需充分利用Angular。