我正在尝试显示来自 imdb api 的图像,图像应显示在 todo.poster 中,当我尝试在本地访问它时,它工作得很好。但是当我在服务器上部署我的项目时,图像不会第一次加载,但是如果我在新选项卡中打开相同的图像一次然后刷新我的项目 url,图像就会显示。试图解决这个问题我非常沮丧
<div ng-repeat="todo in todos">
<a href="#show/{{todo.title}}" >
<h2>{{todo.title}}</h2>
</a>
<br>
<a href="#show/{{todo.title}}" >
<img ng-src= {{todo.poster}} alt="Image Not Found">
</a>
</div>
http://ia.media-imdb.com/images/M/MV5BMTk4ODk5MTMyNV5BMl5BanBnXkFtZTcwMDMyNTg0Ng@@._V1_SX300.jpg
如果使用浏览器的检查元素,我会看到此错误
Failed to load resource: the server responded with a status of 403 (Forbidden)
最佳答案
结果是 imdb 实际上阻止了展示他们的海报的请求,他们不允许盗链,这就是他们阻止它的原因。他们正在检查 referer 以阻止请求。
如果其他人遇到同样的问题,可以有多种解决方案,一个可以是先在您的服务器上下载图像,然后从那里显示这些图像, 另一个可能是使用其他一些 api,如 moviedb。请注意烂番茄的 api 返回的图像仅为缩略图大小,因此不会有帮助。
或者,如果有人想使用仅从 imdb 获取数据的 api,则可以将它与 moviedb 结合使用,例如从 imdb 获取所有信息,然后使用 imdb 返回的电影 ID,您可以从 moviedb 获取海报图像或其他图像。
关于javascript - 图像未加载 javascript、html、angular、imdb api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334108/