Configuration nginx pour éviter “ERROR DOMException: blocage d’un cadre d’origine xxx d’access à un cadre d’origine croisée”

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:

  • website1.com
  • website2.com
  • website3.com

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"

entrer la description de l'image ici

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?