Heim > Web-Frontend > js-Tutorial > Wie überwindet man „SecurityError: Blocked Cross-Origin Access' bei der Verwendung von Iframes?

Wie überwindet man „SecurityError: Blocked Cross-Origin Access' bei der Verwendung von Iframes?

Barbara Streisand
Freigeben: 2025-01-01 03:33:09
Original
729 Leute haben es durchsucht

How to Overcome

Sicherheitsfehler: Cross-Origin-Zugriff blockiert

Beim Versuch, einen Iframe in Ihre HTML-Seite zu integrieren und mit JavaScript auf seine Elemente zuzugreifen, kann der folgende Fehler auftreten:

SecurityError: Blocked a frame with origin "http://www.example.com" from accessing a cross-origin frame.
Nach dem Login kopieren

Dieser Fehler ist auf die Einhaltung der Same-Origin-Richtlinie durch den Browser zurückzuführen, einer Sicherheitsmaßnahme, die den Zugriff von Skripten verhindert Rahmen unterschiedlicher Herkunft. Ein Ursprung umfasst das Protokoll, den Hostnamen und den Port.

Problemumgehung

Während der direkte ursprungsübergreifende Skriptzugriff verboten ist, können Sie window.postMessage und das entsprechende Nachrichtenereignis verwenden, um die Kommunikation zwischen den herzustellen Rahmen:

Haupt Seite:

const frame = document.getElementById('your-frame-id');
frame.contentWindow.postMessage(/*any variable or object here*/, 'https://your-second-site.example');
Nach dem Login kopieren

Iframe:

window.addEventListener('message', event => {
    // Verify the origin to ensure it's your site
    if (event.origin === 'https://your-first-site.example') {
        // Retrieve data from event.data
        console.log(event.data);
    }
});
Nach dem Login kopieren

Dieser Ansatz ermöglicht eine bidirektionale Kommunikation zwischen den Frames. Die ursprungsübergreifende Nachrichtenübermittlung kann auch auf Pop-ups und andere neue Fenster angewendet werden, die von der Hauptseite aus generiert werden.

Das obige ist der detaillierte Inhalt vonWie überwindet man „SecurityError: Blocked Cross-Origin Access' bei der Verwendung von Iframes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage