Ich versuche, auf einen Iframe innerhalb einer Subdomäne zuzugreifen und einen Cross-Domain-Fehler zu erhalten.
Hier ist der Code von Beispiel .mydomain.com/iframe_test.html:Access-Control-Allow-Origin funktioniert nicht für iframe mit derselben Domäne
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<iframe src="http://example2.mydomain.com/welcome.php" width="1000" height="600"></iframe>
<script>
$(document).ready(function()
{
setTimeout(function(){
$('#innerdiv',$('iframe').contents()).hide();
},5000);
});
</script>
</body>
</html>
Und hier ist der Code von example2 .mydomain.com/welcome.php:
<?php
header("Access-Control-Allow-Origin: " . "*");
?>
<html>
<head>
</head>
<body>
<div id="innerdiv">
hello
</div>
</body>
</html>
. Wenn die Linie $ (. '# Innerdiv', $ ('iframe') Inhalt()) hide() ausgeführt wird, wird der folgende Fehler tritt auf:
Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://example.mydomain.com" from accessing a frame with origin "http://example2.mydomain.com". Protocols, domains, and ports must match.
ich mit Fiddler vergewissert, dass Der Header Access-Control-Allow-Origin wurde in der Antwort von welcome.php wirklich zurückgegeben. Ist es möglich, auf den Inhalt eines iFrame innerhalb einer Subdomäne zuzugreifen?
Wo sollten wir das document.domain-Zeug hinzufügen? Können Sie ein wenig mehr ausarbeiten? Vielen Dank. –
@SaeedNeamati Sie müssen es den beiden Seiten in das Skript-Tag hinzufügen. Im Grunde müssen die Hauptseite und die Iframe-Seite '' set –
Das funktioniert nicht, bekomme ich: 'Uncaught SecurityError: Fehler beim Festlegen der Eigenschaft 'Domäne' auf 'Dokument ':' example.com 'ist kein Suffix von' '.' –