2017-02-14 1 views
1

J'ai une page Web sur le domaine https://imeet.pgi.com faisant un XMLHttpRequest à un autre domaine. La demande échoue avec l'erreur de la console suivante (en utilisant le navigateur Chrome):Pourquoi mon en-tête Access-Control-Allow-Origin a-t-il une valeur incorrecte?

XMLHttpRequest ne peut pas charger https://pgidrive.com/eloqua/forminator/getForm.php. L'en-tête 'Access-Control-Allow-Origin' a une valeur 'https://imeet.pgi.coms' qui n'est pas égale à l'origine fournie. L'origine 'https://imeet.pgi.com' n'est donc pas autorisée.

Notez que l'accès-Control-en-tête Permet d'origine a une valeur de: https://imeet.pgi.coms avec un "s" à la fin.

Pourquoi l'en-tête Access-Control-Allow-Origin a-t-il une valeur incorrecte?

Si cela pouvait être une faute de frappe quelque part, où aurais-je l'air de vérifier?

Plus d'informations d'arrière-plan: J'ai fait cette même demande avec succès à partir d'autres domaines sans problème. J'ai défini une liste de domaines d'origine autorisés incluant imeet.pgi.com sur le fichier .htaccess sur pgidrive.com.

En outre, le code pour les domaines d'origine autorisés dans mon .htaccess:

<IfModule mod_headers.c> 
    SetEnvIf Origin "http(s)?://(www\.)?(agenday.com|imeet.pgi.com|pgi.com|go.pgi.com|staging.pgi.com|imeetlive.pgi.com|globalmeet.pgi.com|latam.pgi.com|br.pgi.com|pgi.ca)$" AccessControlAllowOrigin=$0$1 
    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin 
    Header set Access-Control-Allow-Credentials true 
</IfModule> 
+0

vérifier que htaccess puis – hjpotter92

+0

@ hjpotter92 - J'ai vérifié le htaccess, mais je ne vois pas de problème. Je viens d'ajouter mon code htaccess à mon message. Merci beaucoup d'avoir regardé. – stackingjasoncooper

Répondre

2

Dans votre fichier htaccess, lorsque vous faites ce qui suit:

SetEnvIf Origin "http(s)?://(www\.)?(agenday.com|imeet.pgi.com|pgi.com|go.pgi.com|staging.pgi.com|imeetlive.pgi.com|globalmeet.pgi.com|latam.pgi.com|br.pgi.com|pgi.ca)$" AccessControlAllowOrigin=$0$1 

vous avez AccessControlAllowOrigin=$0$1. Ici, $0 signifie la chaîne entière correspondante, et $1 signifie le premier groupe apparié. Le premier groupe correspondant est (s)?.

Lorsque vous faites une demande en utilisant l'origine: https://imeet.pgi.com, le motif est analysé et regroupé as follows:

$0 = `https://imeet.pgi.com` 
$1 = `s` 
$3 = `imeet.pgi.com` 

qui est la raison pour laquelle vous voyez le caractère s.

changement qui à (essentiellement, enlever le $1):

SetEnvIf Origin "https?://(?:(?:agenday|(?:(?:imeet|go|staging|imeetlive|globalmeet|latam|br)\.)?pgi)\.com|pgi\.ca)$" AccessControlAllowOrigin=$0 
+0

DUDE. Tu es l'homme. Merci beaucoup! Je suis novice en termes d'expressions et de modèles réguliers - je vois que j'ai encore beaucoup à apprendre! – stackingjasoncooper