1

我编写了一个小实用程序,它使用 imdbapi.com 上提供的(非官方)API 帮助比较电影

该 api 甚至返回我打算在我的页面上显示的电影海报的路径。我遇到的问题是,即使元素与正确的路径一起正确创建,当我在线部署站点代替图像时,我得到一个空白占位符。

图像在本地主机上测试时加载 - 但不能在线工作。

另一个奇怪的部分是,如果我已经在本地搜索了一部电影并因此缓存了图像,那么它会在在线搜索同一部电影时出现 - 但不会加载新海报。

源代码和一切都在网上:http ://compovie.com

它完全在 JS 中 - 没有使用服务器端脚本。

这真的让我发疯,任何帮助将不胜感激。我已经对此进行了测试,并且行为在 FF 3.6、IE8 和 Chrome 中重复出现。

谢谢。

-- 2010 年 2 月 19 日编辑 --

我用来让它工作的 PHP 脚本片段是:

header('Content-Type: image/jpeg');
if(isset($_GET["imgUrl"])) {
    $img = file_get_contents($_GET["imgUrl"]);
        echo $img;
}
4

1 回答 1

3

使用 firebug 进行跟踪,看起来 imdb 根据 HTTP_REFERRER 限制对图像的访问。回应如下:

<HTML><HEAD>
<TITLE>Referral Denied</TITLE>
</HEAD><BODY>
<H1>Referral Denied</H1>
You don't have permission to access "http&#58;&#47;&#47;ia&#46;media&#45;imdb&#46;com&#47;images&#47;M&#47;MV5BMjA3NDI4ODUwMF5BMl5BanBnXkFtZTcwOTgxOTkyMQ&#64;&#64;&#46;&#95;V1&#46;&#95;SX320&#46;jpg" on this server.<P>
Reference&#32;&#35;24&#46;362e0660&#46;1296452290&#46;2e4450a
</BODY></HTML>
于 2011-01-31T05:40:50.933 回答