Политика одинакового происхождения - AJAX и использование общедоступных API

Я знаю, находится ли на моей собственной веб-странице, если мой пользователь находится на: http://www.example.com/form.php

и я делаю запрос ajax с этой страницы на: http://example.com/responder.php

Это не удастся из-за той же политики происхождения (субдомен отличается).

Я пытаюсь понять, как запросы AJAX могут извлекать данные из API, таких как flickr, когда запрос и сервер явно отличаются.


Изменить:

например: Почему этот код работает?

$.getJSON('http://api.flickr.com/services/rest/?&;method=flickr...'

(Ссылка на эту вики-страницу сообщества) Используется ли он Совместное использование ресурсов между источниками?

Спасибо!


person DMin    schedule 21.08.2010    source источник


Ответы (1)


Есть несколько известных способов обойти одну и ту же политику происхождения. Одним из популярных методов является использование «внедрения тегов сценария», например, в JSONP. Поскольку тег <script> не ограничен Политикой того же происхождения, сценарий в стороннем домене может предоставлять исполняемый код, который взаимодействует с предоставленной функцией обратного вызова. Вы можете ознакомиться с разделом «Советы и уловки» в следующей статье для дальнейшего чтения по этой теме:

Вам также может быть интересно ознакомиться со следующим сообщением о переполнении стека для дальнейшего чтения о других методах работы с той же политикой происхождения:


ОБНОВЛЕНИЕ: Далее обновленный вопрос:

Цитата из документации jQuery на $.getJSON():

Если URL-адрес включает строку «callback =?» в URL-адресе запрос обрабатывается как JSONP.

person Daniel Vassallo    schedule 21.08.2010
comment
Дело не в том, что элемент освобожден от той же политики происхождения, поскольку этот JavaScript не имеет доступа к возвращаемым необработанным данным. Это зависит от третьей стороны, предоставляющей исполняемый код, который взаимодействует с предоставляемой вами функцией. - person Quentin; 21.08.2010
comment
@ Дэвид: Спасибо. Обновил мой ответ, чтобы быть более точным :) - person Daniel Vassallo; 21.08.2010
comment
Ага! блин, jQuery, выполняющий все эти трюки, справляется с этим в фоновом режиме! :) АККУРАТНЫЙ! Люблю jQuery --- Ссылка: insideria.com /2009/03/what-in-the-heck-is-jsonp-and.html - person DMin; 21.08.2010
comment
Вышеупомянутая статья теперь находится по адресу Developria. ru / 2009/03 / what-in-the-heck-is-jsonp-and.html - person Arnaud Meuret; 20.11.2012