Как API Google возвращает запросы на междоменные запросы в Google, когда он находится на вашем веб-сайте?Как API javascript Google обходит междоменную безопасность в AJAX
ответ
AFAIK они используют IFRAME.
Они обходятся, динамически вставляя теги сценария в голову документа. Javascript, который отправляется с помощью этой инъекции, имеет функцию обратного вызова, которая сообщает скрипту, запущенному на загруженной странице, и полезной нагрузке (данным).
Сценарий затем может удалить динамически введенный тег сценария и продолжить.
Другая возможность состоит в том, чтобы использовать window.name
транспорт, как описано в рамках додзё here
Принятый ответ неверен. Бен прав. Ниже фактический узел iframe снял страницу с помощью Google API JavaScript Client.
<iframe name="oauth2relay678" id="oauth2relay678"
src="https://accounts.google.com/o/oauth2/postmessageRelay?
parent=https%3A%2F%2Fwww.example.com.au#rpctoken=12345&forcesecure=1"
style="width: 1px; height: 1px; position: absolute; left: -100px;">
</iframe>
Основные резюме, как это работает здесь: http://ternarylabs.com/2011/03/27/secure-cross-domain-iframe-communication/. В современных браузерах они используют HTML postMessage для достижения связи, а в старых браузерах они используют аккуратный взломанный код с комбинацией «iframe-urlhash-read + write-combination». Ternary Labs сделали library, который абстрагирует весь хакерский материал, в основном предоставляя вам postMessage во всех браузерах.
Однажды я создам наверх этой библиотеки упростить API-интерфейсы REST междоменный ...
Edit: В этот день пришел и XDomain здесь - https://github.com/jpillora/xdomain
Похоже карты отображения Google с помощью <img> tag Я предполагаю, что они используют библиотеку JavaScrit для выработки всех координат и других параметров, которые требуется URL-адресам src, а затем вставьте теги <img> (вместе с миллионами других тегов) в ваш DOM.
Полная карта построена с несколькими панелями, как ниже HTML:
< IMG SRC = "https://mts1.google.com/vt/[email protected] & гектолитров = еп & Src = приложение & х = 32741 & s = & у = 21991 & г = 16 & шкала = 1.100000023841858 & s = Галилею "класс = "CSS-3d-слой" стиль =" позицию: абсолютная; слева: 573px; сверху: 266px; width: 128px; height: 128px; border: 0px; padding: 0px; margin: 0px; " >
(Вы можете вставить этот HTML в свой собственный веб-страницу, чтобы увидеть результат)
Так Google Maps НЕ использует AJAX или что-нибудь, чтобы получить свои карты, просто образы, созданные на лету. Поэтому никаких проблем с перекрестными доменами не нужно беспокоиться о ...
Я согласен с вами. Google должен использовать что-то похожее на это, так как они отправляют сообщение в свою службу календаря, используя библиотеку Javascript, которая невозможна в JSONp. +1 – Ramesh 2009-09-11 12:40:52