2015-07-19 64 views
0

我已经通过Azure发布了一个不想显示图像绝对URL的网站。基本上,我使用a free web service来获取关于电影的信息。我已将JavaScript添加到页面以处理所有HTML控件的设置,例如使用document.getElementById("imgID").src = xmlElement.getAttribute("poster");<img />标记。部署后不显示图像

现在,当我正在调试时,这种方式非常有效,但是在网站发布时根本不起作用(通常情况下......)。当我检查元素并查看源代码时,源代码是有效的,但会显示“图像无效”图标或替代文本。

一个例子可以看这里: <img width="300" height="450" alt="Couldn't display image..." src="http://ia.media-imdb.com/images/M/[email protected]@._V1_SX300.jpg" />

enter image description here

有什么我与Azure的缺失,如东西在Web.config中设置?任何方向将不胜感激。

+0

控制台中是否有任何错误?可能是混合数据的问题,不安全还是安全。 –

+0

我得到的唯一错误是来自AdSense控件的“拒绝访问”错误。 – tbm0115

回答

1

使用你自己的图像抱怨Azure之前!你的问题是因为你试图从第三方网站窃取图像 - 即imdb。开始的Web开发人员首先要做的,就是学习如何保护他/她的图像,直接引用那些想要节省流量和努力并且直接引用他们不拥有的图像的粗暴网站。

您的网站在本地工作,因为没有Referer标头集,或者因为它设置为Localhost。但是,一旦您发布,Referer header具有正确的网站价值。然后图像请求以HTTP 403状态结束。

一旦你把图片放入你的网站并从那里加载它,它就会工作。但是,当然,你必须遵守图像的版权。

+1

谢谢你的Referer头注。进一步的研究帮助我了解问题所在。我觉得下面的问题提供了一个更清晰的解释。 http://stackoverflow.com/questions/3154562/remote-images-displaying-only-sometimes。我目前也正在与上述网站服务联系,看看他们是否遵守IMDb的许可和网站访问条件,允许使用可版权材料用于非商业用途。如果前面提到的服务没有明确的权限,那么我将转换为使用IMDb的通知未记录的API来获取信息 – tbm0115