Существует 2 возможных ответа при использовании AJAX для загрузки содержимого страницы с другого сервера
1) Оба сервера находятся в одинаковом домене (s1.example.com
, s2.example.com
), и в этом случае вы можете установить для домена значение просто example.com
, что обеспечивает полную функциональность при вызовах AJAX.
2) Серверы находятся в совершенно другом домене - сервер, который предоставляет контент (в настоящее время для IFrame), должен предоставлять данные с использованием протокола JSONP
(обратите внимание на P!), Это означает, что полученные данные загружаются в скрипт тег, который затем выполняется. Сами данные содержат вызов функции JS, например:
<code>{data: '<pre>Some Html
'}
фактически возвращается как:
<code>function SomeFuncNameSpecifiedInTheRequest({data: '<pre>Some Html
'});
Вместо того, чтобы делать вызов AJAX, вы динамически добавляете тег страницы на страницу, что-то вроде:
<script type="text/javascript" src="http:/www.example.com/GetMyData.php?WrapperFunction=SomeFuncNameSpecifiedInTheRequest">
Затем вы реализуете SomeFuncNameSpecifiedInTheRequest
на своей странице и обрабатываете результаты, когда она вызывается. JQuery реализует эту функцию автоматически (по крайней мере, на стороне клиента).
См. здесь для получения дополнительной информации о JSONP и здесь для получения дополнительной информации о настройке домена