1

Ich verwende eine Python-App in der auf Cloudfoundry basierenden Swisscom Application Cloud. Die App erstellt txt- und js-Dateien, die in s3 (dynstrg) gespeichert sind, um die Verfügbarkeit sicherzustellen.Vermeiden Sie Allow-Control-Allow-Origin für async geladene txt/js-Dateien, die in S3 Cloud Storage gespeichert sind

Ich versuche, die Daten dieser Dateien async zu laden, aber ich bekomme einen Fehler "XHTMLRequest kann nicht geladen werden", da die Header "Allow-Control-Allow-Origin" nicht festgelegt sind und auf einem anderen Host sind. S3 ist auf etw. Wie https://ds31s3.swisscom.com/ ... die app auf https: //.scapp-corp.swisscom.com/

Gibt es eine Möglichkeit, ich kann diese Header für den Dienst dynstrg irgendwie in der manifest.yml oder ähnlich ?

Antwort

1

Wenn Dateien direkt von S3 an den Browser dient (ohne Interaktion von einem Back-End-app), würden Sie normalerweise so eingestellt CORS-Einstellungen auf S3 Eimer: http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors

Leider ist auf Atmos dynstrg Service von Swisscom basiert, die nicht bieten hat Einstellung von CORS-Einstellungen (und EMC plant dies auch nicht, wie uns gesagt wurde).

Um dies zu umgehen, schlage ich vor, Sie implementieren einen Endpunkt in Ihrer Python-App, die die TXT-und JS-Dateien durch Abrufen von Atmos bereitstellt. Dies führt zu einer Leistungseinbuße, löst jedoch Ihr CORS-Problem.

+0

Es gibt eine Umgehungsmöglichkeit mit $ .getScript(), aber es muss natürlich keine json-Datei zurückgegeben werden, sondern ein JavaScript-Snippet, zB var xy = 2ni