Подтвердить что ты не робот

Как API javascript Google обойти междоменную безопасность в AJAX

Как Google API возвращает запросы на междоменные запросы в Google, когда он находится на вашем веб-сайте?

4b9b3361

Ответ 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&amp;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 не нужно беспокоиться о...