Получение HTML-кода внешнего URL через jQuery / AJAX - PullRequest
0 голосов
/ 24 февраля 2011

Мне нужно получить определенный элемент DOM (по идентификатору) с внешнего URL-адреса через jQuery / AJAX. Я знаю, что это нарушает ту же политику происхождения, но я не могу найти приемлемый обходной путь, когда я специально беру HTML (вместо JSON).

Так, например, я на сайте website1.com, и мне нужно получить и вывести содержимое элемента #something сайта website2.com. Как я могу сделать это с помощью jQuery?

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

Ответы [ 2 ]

1 голос
/ 26 февраля 2011

(отвечая на мой вопрос):

Обратите внимание, что это невозможно в браузере из-за одинаковой политики происхождения. Чтобы обойти это (как сказал Пекка в комментариях выше), вы обычно создаете локальный прокси желаемого контента. Например, если вы работаете на website.com и вам нужно получить часть google.com, вы можете создать website.com/google, который будет просто клоном google.com через некоторый код на стороне сервера. Тогда вы будете свободны делать все, что захотите, поскольку это в вашем домене.

Уловка, с которой я имел дело, заключается в том, что я работал над проектом BlackBerry WebWorks, что означает, что я ограничен HTML / CSS / JS и на самом деле я не на веб-сайте поэтому прокси невозможно. К счастью, WebWorks позволяет добавлять доверенные домены в каждое создаваемое приложение, что означает, что одна и та же политика происхождения не применяется к этим доменам.

0 голосов
/ 03 февраля 2012

Ложные.Политика не является абсолютной, если сервер поддерживает JSONP.Google JSONP Jquery, и вы увидите множество рабочих примеров, которые делают то, что вы хотите: возвращать данные веб-сервиса из домена, отличного от вашего, через ajax.

...