Hallo zusammen,
aktuell versuchen wir ein auf javascript basierendes System mit unserer Shopware 5 REST Api zu verbinden. Leider klappt das nicht so recht. Bei API Aufrufen kam es erst zu dieser Fehlermeldung:
Access to XMLHttpRequest at 'https://unser-shop.com/api/articles/2387' from origin 'https://client.test.de' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'https://sub.test.de' that is not equal to the supplied origin.
Daraufhin habe ich in der .htaccess Datei des Shops folgendes hinzugefügt:
Header set Access-Control-Allow-Origin: https://client.test.de
(bzw auch mit "Header set Access-Control-Allow-Origin „*“ getestet)
In beiden Fällen war der erste Fehler weg, aber es kommt stattdessen zu folgender Fehlermeldung:
Access to XMLHttpRequest at 'https://unser-shop.com/api/articles/2387' from origin 'https://client.test.de' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Bei API Aufrufen direkt auf unserem Server über PHP gab es hingegen keine Probleme. Jemand eine Idee wie sich das Problem lösen lässt?
EDIT:
Ich konnte das Problem lösen:
An den Anfang der Shopware .htaccess Datei, nach „RewriteEngine on“ folgendes hinzufügen:
Header append X-Frame-Options SAMEORIGIN
# allow cross-site requests
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header always set Access-Control-Allow-Headers "*, Authorization, authorization"
RewriteEngine on
# always return 200 for preflight OPTIONS requests
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
Um den Cross Site Zugriff auf eine bestimmte Domain einzugrenzen muss dann noch folgende Zeile angepasst werden:
Header always set Access-Control-Allow-Origin "*"
Und zwar zu:
Header always set Access-Control-Allow-Origin "https://deine-cross-site-domain.org"
Quelle:
https://www.rent-a-hero.de/2017/10/09/die-shopware-rest-api-von-javascript-aus-nutzen/