Последняя строка записана в формате JSONP

Последняя строка записана в формате JSONP. И в тоже время она представляет собой JavaScript функции! Если отбросить текст в начале строки (test) и круглые скобки, то получим строку в формате JSON. В результате работы этого скрипта будет вызвана функция test и в параметре data она получит объект с вашими данными. Т. е. вы увидите текст «123». Сейчас, наверное, польза от JSONP не очень очевидна, но всё меняется, когда возникает необходимость отправлять XSS запросы. Проблема в том, что Same Origin Policy запрещает отправлять запросы ко всем ресурсам кроме того, с которого был загружен сам скрипт. Для обхода этого ограничения используется вставка дополнительного тега script в заголовок страницы. Атрибут src этого тега должен указывать на домен, к которому вы хотите отправить запрос. Примечание. Подробнее о вариантах отправки XSS запросов можно почитать в статье «XSS и Same Origin Policy». Иными словами, вы явно загружаете скрипт с нужного домена. А из этого скрипта можно отправлять запросы к этому домену, не нарушая Same Origin Policy. Теперь разберем, что нам даёт JSONP, и тут же рассмотрим его поддержку в jQuery. Если кратко – с его помощью мы можем контролировать процесс загрузки данных и вызвать собственную JavaScript функцию после его завершения. Самое главное, нужно четко понимать, что формат JSONP должен поддерживаться на стороне сервера. Ведь разработчик серверного API не может заранее определить, как будет называться JavaScript функция, обрабатывающая полученные данные. Т. е. заранее неизвестно какой текст нужно вставлять перед открывающей круглой скобкой. Поэтому алгоритм взаимодействия между клиентским и серверными скриптами будет следующим. 1) Клиентский скрипт создает тег script и в его атрибуте src указывает адрес скрипта вместе с названием функции-обработчика в одном из параметров. Например,

Понравилась статья? Получай обновления и будь всегда в курсе событий!
Подпишись на RSS или
blog comments powered by Disqus