Próbuję uzyskać dostęp do elementu iframe w subdomenie i uzyskać błąd cross-domain.
Oto kod przykład .mojadomena.com/iframe_test.html:Access-Control-Allow-Origin nie działa dla iframe z tą samą domeną
<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>
A oto kod przyklad2 .mojadomena.com/welcome.php:
<?php
header("Access-Control-Allow-Origin: " . "*");
?>
<html>
<head>
</head>
<body>
<div id="innerdiv">
hello
</div>
</body>
</html>
. gdy linia $ (. '# innerdiv', $ ('iframe') zawartość()) hide() jest wykonywany, pojawia się następujący błąd:
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.
Sprawdziłem Skrzypek że nagłówek Access-Control-Allow-Origin został rzeczywiście zwrócony w odpowiedzi na welcome.php
Czy można uzyskać dostęp do zawartości elementu iframe w subdomenie?
Gdzie powinniśmy dodać dokument document.domain? Czy możesz rozwinąć trochę więcej. Dziękuję Ci. –
@SaeedNeamati Musisz dodać je do obu stron w tagu skryptu. Zasadniczo strona główna i strona iframe muszą mieć '' set –
To nie działa, otrzymuję: 'Uncaught SecurityError: Nie można ustawić właściwości 'domain' w 'Document ":" example.com "nie jest przyrostkiem". " –