Problem

Ich entwickle eine HTML-Anwendung, bekomme aber den folgenden Fehler, wenn ich versuche, Bilder von Scene7 aufzurufen:

XMLHttpRequest kann http://company.scene7.com/is/image/Company/image nicht laden. Der Ursprung http://www.clientCompany.com ist von Access-Control-Allow-Origin nicht erlaubt.

Verwenden Sie CORS (Cross-Origin-Resource-Sharing): http://enable-cors.org/server.html
Damit es funktioniert, muss der company.scene7.com-Server die folgende Kopfzeile hinzufügen:

Access-Control-Allow-Origin: *

Da diese Option für die Scene7-Server nicht verfügbar ist, können Sie einen Regelsatz verwenden, um denselben Effekt zu erzielen:

Lösung

<?xml version="1.0" encoding="UTF-8"?>
<ruleset>
   <rule OnMatch="continue">
     <expression>.a=pft</expression>
     <header Name="Access-Control-Allow-Origin" Action="set">pft.company.com</header>
   </rule>
   <rule>
     <expression>.a=www</expression>
     <header Name="Access-Control-Allow-Origin" Action="set">www.company.com</header>
   </rule>
   <rule>
     <expression>.a=dev</expression>
     <header Name="Access-Control-Allow-Origin" Action="set">dev.company.com</header>
   </rule>
</ruleset>

Beachten Sie, dass keine Wildcard möglich ist, sodass für jede Umgebung (Entwicklung, Integration, Produktion, usw.) eine separate Regel erforderlich ist.

Der Regelsatz stimmt mit einem bestimmten Modifikator überein und fügt den Access-Control-Allow-Origin hinzu, der diesem Modifizierer entspricht. Im Folgenden finden Sie Beispiel-URLs mit den oben definierten Regeln:

http://s7d7.scene7.com/is/image/Company/temp1?.a=pft

http://s7d7.scene7.com/is/image/Company/temp1?.a=dev

http://s7d7.scene7.com/is/image/Company/temp1?.a=www


Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie