2

S3 に画像アセットを保存し、XHR を使用してリクエストしています。S3 に次のような CORS ポリシー ファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
</CORSConfiguration>

Chrome と Firefox ではすべて問題なく動作していますが、Safari では問題が発生しています...

キャッシュをクリアして画像をリクエストすると問題はなく、画像は正常に読み込まれますが、ページを更新すると画像の読み込みに失敗し、次のエラーが表示されます。

XMLHttpRequest はhttp://s3-eu-west-1.amazonaws.com/my.bucket.com/photographs/example.jpg?1369324610を読み込めません 。オリジンhttp://example.devは Access-Control-Allow-Origin で許可されていません。

Charles を使用してネットワークを監視すると、この 2 番目のリクエストでは S3 に対してリクエストが行われていないことがわかります。

したがって、問題はSafariのキャッシュに関連しているようです。

Safariでこのエラーが発生する理由を誰か知っていますか?

読み込みコードはPreloadJSと呼ばれるライブラリの一部であり、読み込みを担当するクラスはhereです。370 行目から始まる p_createXHR には、XHR 作成コードが含まれています。ただし、この機能を注意深く観察すると、XHR リクエストは成功したリクエストと失敗したリクエストで同じように見えます。

4

0 に答える 0