Problème

Je développe actuellement une application html, mais reçois le message d'erreur suivant lorsque je tente d'appeler des images Scene7 :

XMLHttpRequest ne peut pas charger http://company.scene7.com/is/image/Company/image. Origin http://www.clientCompany.com n'est pas autorisé par Access-Control-Allow-Origin.

Utilisez CORS (Cross-Origin-Resource-Sharing) : http://enable-cors.org/server.html
pour l'exécuter, le serveur company.scene7.com doit ajouter l'entête suivant :

Access-Control-Allow-Origin: *

Cette option n'est pas disponible pour les serveurs Scene7, vous pouvez utiliser un jeu de règles pour obtenir le même résultat :

Solution

<?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>

Notez qu’il n’y a pas de caractère générique, de sorte que chaque environnement (développement, intégration, production, etc.) nécessite une règle distincte.

L’objet de l'ensemble de règles correspond à un modificateur spécifique et ajoute Access-Control-Allow-Origin qui correspond à ce modificateur. Voici des exemples d’URL utilisant les règles définies ci-dessus :

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


Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne