Как вы получаете контент из другого домена с помощью .load ()? - PullRequest
7 голосов
/ 16 марта 2011

Запрос данных из любого места в моем домене с помощью .load () (или любых функций jQuery ajax) работает отлично.

Попытка получить доступ к URL в другом домене не работает. Как ты делаешь это? Другой домен тоже мой.

Я читал об уловке, которую вы можете сделать с PHP и создании прокси, который получает контент, затем вы используете функции jjuery ajax в том месте php на вашем сервере, но он все еще использует jQuery ajax на вашем собственном сервере, так что не считать.

Есть ли хороший плагин?

РЕДАКТИРОВАТЬ: Я нашел очень хороший плагин для jQuery, который позволяет запрашивать контент с других страниц, используя любую функцию jQuery, точно так же, как обычный запрос ajax в вашем собственном домене.

Должность: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

Плагин: https://github.com/jamespadolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

Ответы [ 4 ]

10 голосов
/ 16 марта 2011

Это связано с междоменной политикой, которая, в свою очередь, означает, что используя клиентский скрипт (a.k.a. javascript ...), вы не можете запрашивать данные из другого домена. К счастью для нас, это ограничение не существует в большинстве серверных сценариев.

Итак ...

Javascript:

$("#google-html").load("google-html.php");

PHP в "google-html.php":

echo file_get_contents("http://www.google.com/");

будет работать.

3 голосов
/ 16 марта 2011

Один действительно простой обходной путь - использовать YQL-сервис Yahoo, который может извлекать контент с любого внешнего сайта.

Я успешно сделал это на нескольких сайтах, следующих за этим примером, использующим только JavaScript и YQL.http://icant.co.uk/articles/crossdomain-ajax-with-jquery/using-yql.html

Этот пример является частью поста в блоге, в котором также описаны некоторые другие решения.http://www.wait -till-i.com / 2010/01/10 / погрузочно-внешний контент с-Ajax-помощь-JQuery-и-YQL /

3 голосов
/ 16 марта 2011

Разные домены = разные серверы с точки зрения вашего браузера. Либо используйте JSONP для выполнения запроса, либо используйте PHP для прокси. Вы можете использовать jQuery.ajax() для выполнения междоменного запроса JSONP.

1 голос
/ 19 января 2013

Я знаю другое решение, которое работает.Это не требует, чтобы вы изменили JQuery.Это требует, чтобы вы могли встать на страницу ASP в вашем домене.Я сам использовал этот метод.

1) Создайте страницу proxy.asp, как на этой странице http://www.itbsllc.com/zip/proxyscripts.html

2) Затем вы можете сделать функцию загрузки JQuery и передать ее прокси.asp? url = ....... На этой ссылке есть пример того, как именно его отформатировать.В любом случае, вы вводите URL-адрес внешней страницы и желаемый тип пантомимы как переменные get для вашей локальной страницы proxy.asp.Я использовал два типа mime: text / html и image / jpg.

Обратите внимание: если на вашей целевой странице есть изображения с относительными исходными ссылками, они, вероятно, не будут загружаться.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...