Шпаргалка => Междоменный Ajax. Взлом Тега Динамического Сценария

Исторически (по соображениям безопасности) объект Javascript XMLHttpRequest , который является основой AJAX, не может выполнять междоменные вызовы.

Это бесполезное ограничение: особых проблем для злоумышленников оно не представляет, но создает некоторые неудобства для разработчиков.

Эту проблему пообещали решить в следующих поколениях браузеров, но не раньше, чем W3C хотя бы утвердит новые стандарты.

Есть много хаков, позволяющих обойти это ограничение, но самый популярный — Взлом тега динамического сценария .

Именно через этот хак организован доступ ко многим API современных веб-приложений.



Сущность

XMLHttpRequest вообще не используется.

Тег динамически создается на странице.

и указан целевой адрес на другом домене.

Браузер загрузит и выполнит содержимое удаленного скрипта в фоновом режиме.

Сам удаленный скрипт передает данные JSON и представляет собой обычный вызов функции вида: функция обратного вызова (json_data); Функция callback_function должна находиться на странице и быть видимой во всем мире.

Он будет обрабатывать данные, возвращенные в формате JSON. Имя этой функции обратного вызова должно быть либо заранее известно как на стороне клиента, так и на стороне сервера, либо передано как GET-параметр, например:

src=" http://example.com/api.js.phpЭcallback_func=mycallback "

Соответственно, удаленный скрипт, формирующий данные JSON, должен выглядеть примерно так


"Заключение"

Сам хак очень прост в использовании, однако некоторые разработчики не могут сразу в нем разобраться.

Парсить данные JSON на стороне клиента очень удобно.

Если вам нужна дополнительная информация, вот хорошая статья: Введение в нотацию объектов JavaScript (JSON) Переехал из личного блога, как только набрал достаточно кармы Теги: #Ajax #crossdomain #json #jsonp #JavaScript #JavaScript

Вместе с данным постом часто просматривают: