Maison >interface Web >js tutoriel >Pourquoi mon code JavaScript obtient-il une erreur « SecurityError : Blocked a frame with origin... » lors de l'accès à un IFrame ?
Dans le développement Web, lorsque vous tentez d'accéder à des éléments dans une iframe qui a un origine différente de celle du document parent, les développeurs peuvent rencontrer l'erreur suivante :
SecurityError: Blocked a frame with origin "http://www.example.com" from accessing a cross-origin frame.
Cette erreur se produit en raison de la politique de même origine mise en œuvre par les navigateurs Web.
La politique de même origine empêche les scripts d'accéder aux ressources de sites Web avec des origines pour prévenir les failles de sécurité potentielles. L'origine fait référence à la combinaison du protocole, du nom d'hôte et du port d'une URL.
Considérez les exemples suivants :
Bien que l'accès JavaScript direct aux frames d'origine croisée soit interdit, il existe des solutions de contournement pour échanger data:
// In the main page: frame.contentWindow.postMessage('message', 'https://your-second-site.example'); // In the iframe: window.addEventListener('message', (event) => { if (event.origin === 'https://your-first-site.example') { console.log(event.data); // Received message } });
La désactivation de la politique de même origine peut être effectuée à des fins de développement, mais ne doit jamais être utilisé dans des environnements de production car il présente des risques de sécurité importants. Voici des liens vers des ressources permettant de désactiver la politique dans divers navigateurs :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!