Как Google API возвращает запросы на междоменные запросы в Google, когда он находится на вашем веб-сайте?
Как API javascript Google обойти междоменную безопасность в AJAX
Ответ 1
Они обходятся, динамически вставляя теги script в начало документа. Javascript, который отправляется с помощью этой инъекции, имеет функцию обратного вызова, которая сообщает script, запущенному на загруженной странице и полезной нагрузке (данным).
script может затем удалить динамически введенный тег script и продолжить.
Ответ 2
Принятый ответ неверен. Бен прав. Ниже фактический iframe node снял страницу с помощью Google JavaScript 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 создали библиотеку которая абстрагирует весь хакерский материал, в основном предоставляя вам postMessage во всех браузерах.
В один прекрасный день я построю ontop этой библиотеки, чтобы упростить междоменные REST API...
Изменить: этот день настал и XDomain здесь - https://github.com/jpillora/xdomain
Ответ 3
AFAIK используют IFRAME.
Ответ 4
Другая возможность заключается в использовании транспорта window.name
, как описано для dojo рамки здесь
Ответ 5
Похоже, карты Google отображаются с использованием <img> тег Я предполагаю, что они используют библиотеку JavaScrit для разработки всех координат и других параметров, необходимых для URL-адреса src, а затем вставить <img> теги (вместе с миллионами других тегов) в ваш DOM.
Полная карта построена с несколькими панелями, такими как HTML ниже:
< img src= "https://mts1.google.com/vt/[email protected]&hl=ru&src=app&x=32741&s=&y=21991&z=16&; scale = 1.100000023841858 & s = Galile" class= "css-3d-layer" style = "position: absolute; left: 573px; top: 266px; width: 128px; height: 128px; border: 0px; padding: 0px; margin: 0px;" >
(Вы можете вставить этот HTML-код на свою веб-страницу, чтобы увидеть результат)
Таким образом, Google Maps НЕ использует AJAX или что-нибудь, чтобы получить свои карты, просто изображения, созданные на лету. Поэтому проблем с Cross Domain не нужно беспокоиться о...