Je dois intégrer trois sites Web différents dans mon application www.myapp.com
en utilisant les iframes. Supposons que les URL de ces sites soient:
Ces sites Web ne peuvent pas être directement intégrés par iframe car leurs serveurs définissent l’en X-Frame-Options
tête de réponse X-Frame-Options
sur SAMEORIGIN
. J’ai donc utilisé nginx comme proxy pour supprimer ces en X-Frame-Options
têtes X-Frame-Options
:
# parent application: myapp.com: server { listen 8080; server_name myapp.com www.myapp.com; location /stand { root /srv/www; try_files $uri $uri/ /stand/index.html; } } # website1.com proxy: server { listen 8080; server_name proxywebsite1.com www.proxywebsite1.com; location / { proxy_pass https://www.website1.com/; proxy_set_header www.website1.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_hide_header 'x-frame-options'; } } # website2.com proxy: server { listen 8080; server_name proxywebsite2.com www.proxywebsite2.com; location / { proxy_pass https://www.website2.com/; proxy_set_header www.website2.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_hide_header 'x-frame-options'; } } # website3.com proxy: server { listen 8080; server_name proxywebsite3.com www.proxywebsite3.com; location / { proxy_pass https://www.website3.com/; proxy_set_header www.website3.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_hide_header 'x-frame-options'; } }
Avec la configuration ci-dessus, je peux maintenant intégrer les trois sites dans des iframes, même si le domaine est différent (www.myapp.com, proxywebsite1.com, proxywebsite2.com, proxywebsite3.com).
MAIS MAINTENANT, je veux cacher certains éléments (pied de page, en-tête, …) des sites Web incorporés en utilisant JavaScript, et il est bloqué parce que les domaines sont différents. J’ai eu l’erreur ci-dessous dans la console du navigateur:
"ERROR DOMException: Blocked a frame with origin xxx from accessing a cross-origin frame"
Donc, ma question: existe-t-il un moyen de configurer nginx pour que myapp.com
et proxywebsite1.com
ne soient pas considérés comme un domaine différent par le navigateur?