2012-06-14 24 views
0

我在网站abc.com上有一张DIV中的图片,该图片位于其他地方,例如<IMG SRC="http://xyz.com/image.jpg">如何刷新远程图片?

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

大多数项目的上传是局部的,但下面的代码不能用于远程图片工作:

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

通过尝试这个,我得到一个错误:...is not allowed by Access-Control-Allow-Origin.

人推荐一个更好的方法来做到这一点?

+0

你有没有在远程服务器控制(即xyz.com)? – jrrdnx

+0

不使用load方法,而是尝试更改img控件的src属性,它应该可以工作。 –

+0

什么是'rightpic'? 'img'? 'div'? –

回答

3

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

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

只有负指标才需要'get'。通常你需要'[]',例如'$(“#rightpic”)[0] .src = ...' –

1

.load使用AJAX请求,因此适用相同的源策略 - 这限制了跨域请求。此外,它不是反正加载图像的最佳方式。此外,设置与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);