1

Я использую приложение python в облаке приложений Swisscom на основе Cloudfoundry. Приложение создает файлы txt и js, которые хранятся в s3 (dynstrg) для обеспечения доступности.Избегайте разрешения-Разрешить-Происхождение для async-загруженных файлов txt/js, хранящихся в облачном хранилище S3

Я пытаюсь загрузить данные этих файлов async, но я получаю ошибку «XHTMLRequest не может загрузить», поскольку заголовки «Allow-Control-Allow-Origin» не установлены и находятся на другом хосте. S3 находится на sth, как https://ds31s3.swisscom.com/ ... приложение на https: //.scapp-corp.swisscom.com/

Есть ли способ, которым я могу установить эти заголовки для службы dynstrg каким-то образом в manifest.yml или аналогично ?

ответ

1

При подаче файлов непосредственно из S3 в браузер (без взаимодействия с внутренним интерфейсом), то, как правило, установить параметры CORS на S3 ведрах: http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors

К сожалению, dynstrg службы Swisscom основана на Atmos, который не делает предложение настройка CORS (и EMC также не планирует реализовывать это, как нам сказали).

Чтобы обойти это, я предлагаю вам реализовать конечную точку в вашем приложении python, которая будет обслуживать файлы txt и js, извлекая их из Atmos. Это связано с штрафом за производительность, но решит проблему с CORS.

+0

Существует некоторое обходное решение с $ .getScript(), но, конечно, ему нужно вернуть не файл json, а фрагмент javascript, например var xy = 2ni