Не могу сделать междоменный вызов Ajax

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

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

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


person antpaw    schedule 09.09.2010    source источник


Ответы (3)


Вы не можете сделать междоменный вызов для получения 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

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

person jAndy    schedule 09.09.2010
comment
вам нужен как минимум процессор deze core! - person antpaw; 09.09.2010

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

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

Вы можете прочитать больше в проекте рабочего документа w3c.

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

person Ernelli    schedule 09.09.2010

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

person Florin P.    schedule 09.09.2010