Три js textureloader отображают ошибку CORS для загрузки данных из корзины S3 в iframe из приложения Ionic

#ionic-framework #amazon-s3 #iframe #three.js #cors

#ionic-framework #amazon-s3 #iframe #three.js #cors

Вопрос:

Это мой код THREE JS:

 var aws_image_path = "path-to-aws-s3-bucket-image"
myTextureLoader = new THREE.TextureLoader();
myMap = myTextureLoader.load(aws_image_path)
// Further I used myMap for SpriteMaterial.
  

Этот код работает должным образом в веб-браузере с использованием https://my_url/

Я добавляю этот URL-адрес в iframe в приложении angular.

Мой ионный код:

 <ion-grid>
    <ion-row>
        <ion-col>
            <iframe class="iframe" [src]="https://my_url/" allow="camera;microphone"></iframe>
        </ion-col>
    </ion-row>
</ion-grid>

  

В приложении S3 изображение не загружается. Отображается ошибка CORS.

Ошибка:

 Access to image at 'path-to-aws-s3-bucket-image' from origin 'https://my_url/' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
  

Конфигурация AWS CORS:

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

Я использовал DomSanitizer в IFRAME, но показываю ту же ошибку.

Комментарии:

1. Находится ли родительский документ в том же https://my_url/ домене, что и документ iFrame?

2. Похоже, это конкретно связано с конфигурацией CORS, а не с какой-либо из библиотек, помеченных тегом ( icon-framework , three.js ) , хотя я бы оставил amazon-s3 на месте, потому что решение может быть специфичным для этой службы.