避免 Allow-Control-Allow-Origin 存储在 S3 云存储中的异步加载 txt/js 文件

Avoid Allow-Control-Allow-Origin for async loaded txt/js files stored in S3 Cloud Storage

我在基于 Cloudfoundry 的 Swisscom Application Cloud 中使用 python 应用程序。 该应用程序创建存储在 s3 (dynstrg) 中的 txt 和 js 文件以确保可用性。

我正在尝试异步加载这些文件的数据,但出现 "XHTMLRequest cannot load" 错误,因为 headers "Allow-Control-Allow-Origin" 未设置且位于不同的主机上。 S3 在某事上 https://ds31s3.swisscom.com/... https://.scapp-corp.swisscom.com/

上的应用程序

有什么方法可以在 manifest.yml 或类似的地方为 dynstrg 服务设置这些 headers 吗?

当直接从 S3 向浏览器提供文件时(无需与后端应用交互),您通常会在 S3 存储桶上设置 CORS 设置:http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors

不幸的是,Swisscom 的 dynstrg 服务是基于 Atmos 的,它不提供设置 CORS 设置(而且 EMC 也不打算实现这一点,正如我们告诉我们的那样)。

要解决此问题,我建议您在 python 应用中实施端点,通过从 Atmos 获取 txt 和 js 文件来提供这些文件。这会带来性能损失,但会解决您的 CORS 问题。