【问题标题】:Image not loading javascript,html,angular,imdb api图片未加载 javascript、html、angular、imdb api
【发布时间】:2015-06-02 18:05:59
【问题描述】:

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

【问题讨论】:

  • 能否详细说明成功响应和 403 响应的请求标头?
  • 您是否尝试使用不带 '{{' 和 '}}' 的 ng-src="todo.poster"?
  • 嗨 - 结果是 imdb 实际上阻止了显示他们的海报的请求,他们不允许盗链,这就是他们阻止它的原因

标签: javascript html linux angularjs imdb


【解决方案1】:

结果是imdb实际上阻止了显示他们的海报的请求,他们不允许盗链,这就是他们阻止它的原因。他们正在检查引用者以阻止请求。

如果其他人遇到同样的问题,可以有多种解决方案,一种是首先在您的服务器上下载图像,然后从那里显示这些图像, 另一种可能是使用其他一些 api,如moviedb。请注意,烂番茄的 api 返回的图像仅为缩略图大小,因此无济于事。

或者,如果有人想使用仅从 imdb 获取数据的 api,则可以将其与 moviedb 结合使用,例如从 imdb 获取所有信息,然后使用 imdb 返回的电影 ID,您可以从 moviedb 获取海报图像或其他图像。

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 2018-03-21
    • 2020-08-25
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多