Не могу сделать междоменный вызов Ajax - PullRequest
3 голосов
/ 09 сентября 2010

$ (документ) .ready (function () {$ .ajax ({url: "http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2", тип:" GET ", успех: функция (msg) {console.log (msg);}});});

я получаю эту ошибку "XMLHttpRequest не может загрузить http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2"

Как я могу сделать кросс-доменные вызовы ajax для получения xml из API?

Ответы [ 3 ]

6 голосов
/ 09 сентября 2010

Вы не можете сделать междоменный вызов для получения XML. Ваш единственный выбор для получения кросс-домена данных - JSON-P.

same origin policy ограничивает прямой доступ к чужому домену (ajax / iframes), json-p использует dynamic script tag insertion для решения этой проблемы.

Взгляните на http://api.jquery.com/jQuery.getJSON/. JSON-P также там рассматривается.

редактировать

http://code.google.com/intl/de-DE/apis/youtube/2.0/developers_guide_json.html

Сделано для вас!

2 голосов
/ 09 сентября 2010

Существует постоянный процесс стандартизации для разработки схемы, разрешающей междоменные запросы Ajax. JSON-P - это просто временное решение, так как он использует тег script для выполнения запросов HTTP, который уступает объекту XMLHttpRequest.

Предлагаемое решение основано на том, чтобы источник ресурса указывал, в каких доменах разрешено делать междоменные запросы, домен "*" означает, что на любой другой веб-странице может размещаться приложение, которое отправляет запросы этому конкретному ресурсу.

Вы можете прочитать больше в w3c Working draft

Это поддерживается в современных веб-браузерах.

0 голосов
/ 09 сентября 2010

попробуйте $ .load (). см http://api.jquery.com/load/

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