Как было сказано ранее, вы не можете получить содержимое <iframe>
, если его источник не из того же источника.
Это также относится к большинству других способов получения внешнего контента, таких как использование ajax для загрузки исходного кода с другой страницы. т.е.: $('#div').load('http://www.google.com');
Чтобы загрузить внешний контент, он должен соответствовать политике с тем же источником.
Это означает, что контент должен быть на том же протоколе и хосте.
Статья в Википедии, связанная выше:
httpː // www.example.com / dir / page2.html -> Успех Тот же протокол и хост
httpː // www.example.com / dir2 / other.html -> Успех Тот же протокол и хост
httpː // username: password@www.example.com/dir2/other.html -> Success Тот же протокол и хост
httpː // www.example.com: 81 / dir / other.html -> Сбой Тот же протокол и хост, но разные порт
https://www.example.com/dir/other.html -> Отказ Другой протокол
http://en.example.com/dir/other.html -> Ошибка другого хоста
http://example.com/dir/other.html -> Сбой другого хоста (требуется точное соответствие)
http://v2.www.example.com/dir/other.html -> Ошибка другого хоста (требуется точное соответствие)
Проще говоря, он должен быть на том же сайте. Таким образом, хотя example.com/hello.html
может загружать контент с example.com/goodbye.html
, он не может загружать контент с google.com/content.html
Кроме того, он должен находиться в том же домене. Субдомены считаются аннулирующими ту же политику доменов, поэтому weebly.com/hello.html
может загружать контент с weebly.com/goodbye.html
, но не может загружать контент с user1.weebly.com/content.html
Конечно, есть обходные пути, как обычно, , но это совсем другая история. На самом деле, это весьма актуально для вопроса. Так что вот замечательная ветка вопросов о всех способах ее обхода.