2010-09-09 5 views
3

$ (документ) .ready (функция() { $ .ajax ({ URL: "http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2", типа: "ПОЛУЧИТЬ", успеха: функция (МВП) { консоли .log (msg); } }); });Cant сделать crossdomain Ajax вызов

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

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

ответ

6

Вы не можете сделать вызов crossdomain, чтобы получить XML. Ваш единственный выбор для получения данных crossdomain - 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

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

+0

@antpaw: добро пожаловать. черт, ваш сайт замораживал мой хром: P – jAndy

+0

вам нужно хотя бы процессор deze core cpu! – antpaw

2

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

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

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

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

Смежные вопросы