Maison >interface Web >js tutoriel >Comment résoudre « SecurityError : empêche une trame avec origine d'accéder à une trame d'origine croisée » ?

Comment résoudre « SecurityError : empêche une trame avec origine d'accéder à une trame d'origine croisée » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-29 12:15:18804parcourir

How to Solve

Dépannage « SecurityError : empêche un cadre avec origine d'accéder à un cadre d'origine croisée »

Le nœud du problème

Politique de même origine , une mesure de sécurité critique, empêche les scripts d'accéder aux trames d'origines différentes (protocole, nom d'hôte ou port). Cette erreur se produit lors de la tentative d'accès à des éléments d'une iframe dont l'origine ne correspond pas.

Résolution du problème

L'accès direct à JavaScript est interdit par la politique de même origine. Cependant, si vous contrôlez les deux pages, envisagez window.postMessage pour la communication entre domaines :

  1. Page principale :

    frame.contentWindow.postMessage(data, 'https://second-site.example');
  2. Iframe Page :

    window.addEventListener('message', event => {
      if (event.origin === 'https://first-site.example') console.log(event.data);
    });

Désactivation de la politique de même origine (imprudent)

Dans des cas exceptionnels, vous devrez peut-être désactiver la politique. Cependant, cela est fortement déconseillé pour des raisons de sécurité.

Pour certains navigateurs, des instructions de désactivation peuvent être trouvées ici :

  • [Google Chrome](lien)
  • [Mozilla Firefox](lien)
  • [Safari](lien)
  • [Microsoft Edge (Chromium)](lien)
  • [Brave](lien)
  • [Microsoft Internet Explorer](lien)

N'oubliez pas que la désactivation de la stratégie de même origine affecte uniquement votre navigateur et présente des risques de sécurité importants.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn