JSONP
JSONP – это JSON + Padding (с полями) – способ обойти запрет на кроссбраузерные запросы.
Технология следующая. Скрипт на странице добавляет в страницы тег <script src=’…’>, после чего начинается немедленное скачивание скрипта. Если этот скачанный скрипт будет содержать какие-то данные, доступа из вызвавшей его функции у нас не будет. Однако скрипт может содержать вызов заранее обговоренной функции, которая выполнится в глобальном пространстве имён:
someFunction({being: 'nothing', nothing: 'being')}
Таким образом, функция вызывается с JSON-параметрами. Клиент получил параметры из кросс-браузерного источника.
По соглашению, источник прописывается с параметром и именем функции-коллбэка:
<script type="text/javascript"
src="http://server2.example.com/Users/1234?jsonp=someFunction">
</script>
Можно сделать один объект с коллбэками, из которого сервер будет отдавать нужную функцию:
<script type="text/javascript"
src="http://server2.example.com/Users/1234?callback=Callbacks.someFunction345">
</script>
MIME-type для JSONP стандартный application/javascript.