klen.github.io

in Blog

Простейшая реализация протокола JSONP

Создание сервера оповещений с использованием Tornado и Socket.IO Ctrl→
←Ctrl Django-gitrevision, автоматическое обновление статики на клиенте

Содержание:


Когда в веб-проекте необходимы кроссдоменные JSONP запросы, а подключать javascript фреймворки не хочется, можно воспользоваться этой простейшей реализацией:

// simplest JSONP request implementation
function jsonp (url, callback) {
    var name = "jsonp" +  +new Date,
        script = document.createElement("script"),
        head = document.getElementsByTagName("head")[0];
    window[name] = callback;
    script.src = url.replace(/=\?/, "=" + name);
    head.insertBefore(script, head.firstChild);
}

Пример использования (получение информации о пользователе с использованием API twitter.com):

var link = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=horneds&count=2&callback=?"

jsonp(link, function (data) { alert(data) });

Пример в действии:

Изменяйте значение поля ниже, на логин пользователя в твиттере, чтобы загрузить изображение его профиля.


Создание сервера оповещений с использованием Tornado и Socket.IO Ctrl→
←Ctrl Django-gitrevision, автоматическое обновление статики на клиенте
alt