2016-08-25 10 views
0

Javaプロジェクトで.pngファイルを読み込もうとするたびに、403エラーが表示されます。奇妙なことは、私が現在使っているものを手に入れるまで、以前使っていた他のホストのために働いたことです。私はいくつかの調査をしてきましたが、それはホストによってチェックされているので、ヘッダーによって引き起こされたようですが、クライアントがボットだと仮定しているので、403エラーが発生します。403 Javaエラーが許可されていません

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

は、この背後にある複数の理由だろう...何か良い「のUser-Agent」ヘッダを送信していないということでした。ホワイトリストに登録されたリクエストの発信元にしか対応できないというポリシーがありました。 –

+0

Javaを使わずにサーバーからイメージにアクセスできますか? たとえば、Linuxでwgetを使用している場合は? あなたとネットワークの間にプロキシが存在する可能性がありますか? – pianista

+0

403は、「サーバーは要求を理解しましたが、要求を実行することを拒否しています。認可は役立たず、要求は繰り返されてはならない(SHOULD NOT)。要求メソッドがHEADでなく、サーバーがなぜ要求が満たされなかったのかを公開することを望むならば、それはエンティティにおける拒絶の理由を記述すべきです(SHOULD)。サーバーがこの情報をクライアントに提供したくない場合は、ステータスコード404(Not Found)を代わりに使用できます。 'http:// www.CENSORED.com/client/bg.png'読取り許可 –

答えて

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 
関連する問題