【问题标题】:Image getting 403 forbidden when deployed to server部署到服务器时禁止图像获取 403
【发布时间】:2013-04-14 16:43:49
【问题描述】:

背景: 我正在使用 Spring Web MVC 以及 JSP 和 HTML/JavaScript 来编写一个网站。我添加了一个搜索功能,它向 imdbapi.org 发送查询并接收包含电影/电视节目信息的 JSON 对象(通过 AJAX)。 JSON 对象包含每个结果的“海报”字段,它是图像的 URL(在 imdb 服务器上)。然后使用 jQuery 显示结果并显示海报(如果可用)..

someDiv.append($("<img src='"+results[i].poster+"'></img'").addClass("resultImg"));

问题: 这在 STS 内置服务器上运行并在本地访问时非常有效。

http://localhost:8080/myWebPage.whatever

我有一个安装了 Tomcat 7 的 ubuntu 服务器盒,在部署到服务器时,每个图像都会出现 403 错误。来自 chrome 控制台的示例:

GET http://ia.media-imdb.com/images/M/MV5BMTY2NDY4NDA0OV5BMl5BanBnXkFtZTcwNTI4MzUyMQ@@._V1._SY317_CR5,0,214,317_.jpg 403 (Forbidden) 

更多信息: 已在 chrome 和 firefox 中进行了测试,结果相同。 如果我无法修复,那么一种解决方案是下载到我认为的服务器上的临时文件夹...

这是我的机器上的 tomcat 服务器的配置问题吗?

【问题讨论】:

  • 当您从网页收到 403 时,如果您通过 Chrome 请求相同的图像资源(例如从不同的标签页),您能否检查是否得到相同的结果?
  • 图片在新标签页中加载正常...

标签: java javascript html spring-mvc tomcat7


【解决方案1】:

这是我的机器上的 tomcat 服务器的配置问题吗?

不,一点也不,您的服务器配置与外部资源可访问性无关,如果您收到@._V1._SY317_CR5,0,214,317_.jpg 403 (Forbidden) - 这显然意味着服务器拒绝您的请求。

而且似乎很多人在使用 IMDB 时都遇到过这类问题 - see this

【讨论】:

  • 这就是我最初的想法。但是当部署在运行在 eclipse (sts) 中的服务器上时它工作正常。我没有得到 403。只有当它部署在我的服务器上时,这才导致了这个问题..
  • 可能是,来自域(您的服务器)的请求被阻止了。
【解决方案2】:

我已经“让它工作”,这不是问题的直接解决方案,而是一种解决方法。在我的服务器上使用本地代理,我将图像下载到 java 中的内存中,然后返回网页...

Java(服务器端)

@RequestMapping(value="/pages/proxyImg")
public ResponseEntity<byte[]> proxyImage(String url) {
    log.info("Image Proxy server: " + url);
    try {
        final HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.IMAGE_JPEG);
        return new ResponseEntity<byte[]>(IOUtils.toByteArray(new URL(url).openConnection().getInputStream()), headers, HttpStatus.CREATED);
    } catch(Exception e) {
        e.printStackTrace();
        return null;
    }
}

Javascript

someDiv.append($("<img src='"+"proxyImg.htm?url="+results[i].poster+"'></img'"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2016-04-23
    • 2015-04-18
    • 2017-06-22
    • 2023-04-06
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多