每次我尝试通过Java项目加载.png文件时,都会给出403错误。奇怪的是,它适用于我以前使用过的任何其他主机,直到我得到了我正在使用的主机。我一直在做一些研究,看起来它是由标题引起的,因为它是由我的主机检查所以它假设客户端是一个机器人,所以它会得到403错误。
private static Sprite BACKGROUND;
static {
try {
BACKGROUND = new Sprite(new URL("http://www.CENSORED/client/bg.png"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
此处使用图片:
BACKGROUND.drawSprite((frameWidth / 2) - (BACKGROUND.myWidth / 2), (frameHeight / 2) - (BACKGROUND.myHeight / 2));
错误:
java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.CENSORED.com/client/bg.png
我不确定在哪里可以添加标题或任何有助于我绕过此错误的内容。
答案 0 :(得分:0)
您是否可能面临CORS(跨源资源共享)问题?
当资源从与第一个资源本身所服务的域不同的域请求资源时,会生成跨源HTTP请求。例如,domain-a.com提供的HTML页面为domain-b.com/image.jpg提出了img src请求。如今,Web上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。
出于安全原因,浏览器会限制从脚本中发起的跨源HTTP请求。例如,XMLHttpRequest遵循同源策略。因此,使用XMLHttpRequest的Web应用程序只能向其自己的域发出HTTP请求。为了改进Web应用程序,开发人员要求浏览器供应商允许XMLHttpRequest发出跨域请求。
更多信息
[1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
[2]: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
[3]: http://www.enable-cors.org