S3 でホストされている JPG をテクスチャとして three.js モデルにロードする際に問題が発生しています。Chrome で CORS エラーが発生し、S3 が CORS をサポートしていることに気付き、開発中にそれをチェックするための非常に寛大なポリシーを設定しました (これまで CORS に遭遇したことはありません)。Firefox は問題ありませんが、Chrome と Safari ではまだエラーが発生します。
JPG は THREE.ImageUtils.loadTexture() によってテクスチャに読み込まれ、そのテクスチャがマテリアルに適用されます。
ロードする前に画像に次を追加しようとしましたが、うまくいかなかったようです:
img.crossOrigin = '';
私が持っている現在の CORS ポリシーは広く開かれています。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Chromeのエラーは
38 Cross-origin image load denied by Cross-Origin Resource Sharing policy.
誰か私にこれに関するヒントを教えてください。
アップデート:
そのため、コードの早い段階で img.crossOrigin を設定していないことがわかりました。愚かな間違い:(
ただし、AllowHeader のヒントは役に立ちます。