javascript - 图像未加载 javascript、html、angular、imdb api

标签 javascript html linux angularjs imdb

我正在尝试显示来自 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/

相关文章:

在多个地方声明时,html 页面上的 javascript 变量初始化

javascript - stdin.write 抛出错误 : write EPIPE

html - 为什么它优先

linux文件比较未包含的字符串

javascript - 忽略数组中区分大小写的输入?

javascript - 如何在 Google Maps API 上绘制复杂的透明圆圈

javascript - 如何在一行中干燥我的 jQuery 代码

javascript - 如何创建类似于 Grooveshark 的进度 "bar"?

c++ - 如何在c/c++中实现挂载功能

linux - 用于 s390x 的 Postgresql 9.5 或 9.6