如何刷新远程图片?

时间:2012-06-14 11:29:12

标签: javascript jquery ajax

我在其他地方托管的网站abc.com上有一张图片,例如<IMG SRC="http://xyz.com/image.jpg">

它加载很好,但是,我需要每隔几秒更新一次。

要上传的大部分内容都是本地的,但以下代码不适用于远程图片:

$('#rightpic').load('http://xyz.com/image.jpg', null);

通过尝试此操作,我收到错误:...is not allowed by Access-Control-Allow-Origin.

有人可以推荐一种更好的方法吗?

2 个答案:

答案 0 :(得分:3)

试试这个,你想要实际更改src,而不是使用.load()函数。

$('#rightpic').get(0).src = 'http://xyz.com/image.jpg';

答案 1 :(得分:1)

.load使用AJAX请求,因此适用相同的源策略 - 这限制了跨域请求。此外,它不是加载图像的最佳方式。此外,将相同的URL设置为src通常会从缓存中加载图像。

相反,您应该将每个请求(如时间戳)的随机查询字符串值添加到"bust the cache"

var img = document.getElementById('rightpic');

//update every 10 seconds using time from epoch as random value
setInterval(function(){
    var randomValue = new Date().getTime();
    img.src = "http://example.com/image.jpg?t="+randomvalue;
},10000);