Как стать автором
Поиск
Написать публикацию
Обновить

Кроссдоменный AJAX на основе CSS

Время на прочтение1 мин
Количество просмотров2.4K
Недавно столкнулся с проблемой как передать данные с сервера A в
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
CSSHttpRequest.get(<br> "http://www.nb.io/hacks/csshttprequest/hello-world/",<br> function(response) { alert(response); }<br> );

Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
 #c0 { background: url(data:,Hello%20World!); }<br> #c1 { background: url(data:,I’m%20text%20encoded%20in%20CSS!); }<br> #c2 { background: url(data:,I%20like%20arts%20and%20crafts.); }

На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.

Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
Теги:
Хабы:
Всего голосов 33: ↑28 и ↓5+23
Комментарии14

Публикации

Ближайшие события