1

J'utilise une application python dans le logiciel Swisscom Application Cloud basé sur Cloud Foundry. L'application crée des fichiers txt et js qui sont stockés dans s3 (dynstrg) pour assurer la disponibilité. J'essaie de charger les données de ces fichiers async, mais je reçois une erreur "XHTMLRequest impossible à charger" car les en-têtes "Allow-Control-Allow-Origin" ne sont pas définis et se trouvent sur un hôte différent. S3 est sur sth comme https://ds31s3.swisscom.com/ ... l'application sur https: //.scapp-corp.swisscom.com/Évitez Allow-Control-Allow-Origin pour les fichiers txt/js chargés en async stockés dans S3 Cloud Storage

Y at-il un moyen que je peux définir ces en-têtes pour le service dynstrg en quelque sorte dans le manifeste.yml ou similaire ?

Répondre

1

Au moment de servir des fichiers directement à partir de S3 au navigateur (sans interaction d'une application back-end), vous devez normalement définir les paramètres CORS sur des seaux S3: http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors

Malheureusement, le service de Swisscom dynstrg est basé sur Atmos qui ne offre pas réglage des paramètres CORS (et EMC ne prévoit pas non plus de mettre en œuvre cela, comme nous l'a dit). Pour contourner ce problème, je vous suggère d'implémenter un point de terminaison dans votre application python qui sert les fichiers txt et js en les récupérant depuis Atmos. Ceci vient avec une pénalité de performance, mais résoudra votre problème de CORS.

+0

Il existe une solution de contournement avec $ .getScript(), mais bien sûr, il ne doit pas retourner un fichier json mais un extrait javascript, par exemple var xy = 2ni