Исторически (по соображениям безопасности) объект 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
-
25 Лет Эволюции Apple Mouse В Фотографиях
19 Oct, 24 -
Мотивация Менеджеров Проектов
19 Oct, 24 -
О Принятии Решений Пользователем
19 Oct, 24