【问题标题】:Getting 403 forbidden when dynamically loading images in AngularJS在AngularJS中动态加载图像时禁止出现403
【发布时间】:2013-05-04 08:49:38
【问题描述】:

我正在从我的 api 加载 json 数据,其中包含指向我域外图像的 url。我过去做过这个,不是用 Angular,我从来没有见过这个问题......

在我的fiddle 中,当我单击“搜索”时,会出现两个图像,但它们都抛出 403 禁止并且不加载。

我不知道为什么会这样。有什么想法吗?

var app = angular.module('app', []);

function HomeController($scope) {
    $scope.search = function() {
        $scope.movies = [ 
            { Title: 'The Matrix', Poster: 'http://ia.media-imdb.com/images/M/MV5BMTU4NTczODkwM15BMl5BanBnXkFtZTcwMzEyMTIyMw@@._V1._SY317_.jpg' },
            { Title: 'The Matrix Reloaded', Poster: 'http://ia.media-imdb.com/images/M/MV5BMTg1NTkxOTk0MV5BMl5BanBnXkFtZTYwODc4MTc4._V1._SY317_.jpg' }
        ];
    };
}

【问题讨论】:

  • 标题错了:D
  • 那些海报是为星球大战准备的。是的,我看过了。
  • 大声笑,是的,我偷懒了:)

标签: javascript angularjs


【解决方案1】:

imdb 似乎正在检查引用者,因此不允许其他方直接在他们的网站上嵌入他们的图像。如果您尝试使用来自其他域的图像,它可以工作:http://jsfiddle.net/PZJKZ/2/

var app = angular.module('app', []);

function HomeController($scope) {
    $scope.search = function() {
        $scope.movies = [ 
            { Title: 'The Matrix', Poster: 'http://dartr.com/wp-content/uploads/2011/10/javascript-logo.png' },
            { Title: 'The Matrix Reloaded', Poster: 'http://wpmu.org/wp-content/uploads/2010/04/jquery-logo1.png' }
        ];
    };
}

【讨论】:

  • 伙计,这太糟糕了。我想我必须使用 RottenTomatoes API :(
  • 免责声明:我不知道版权法等如何处理这些图像,因此您必须先检查一下。但是您可以手动下载图像,或者让脚本下载它们并将其托管在您的域中。
猜你喜欢
  • 2014-10-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 2020-03-02
  • 2023-01-22
  • 1970-01-01
  • 2017-12-28
相关资源
最近更新 更多