Flash-платформа → Flash +.РФ. Что делать?
Собственно, проблема.Флэш-ролик не может обратиться к ресурсам на сервере, если размещен на сайте с международным именем (в частности, РФ). Замечено в браузере Firefox под Windows.
Не очень приятный глюк, особенно с учетом распространенности данного браузера и данной платформы… Беглый взгляд по форумам не принес желаемых результатов, и пришлось взяться за исследования. Итак, подробности…
JavaScript → Особенности кроссдоменного скриптинга на субдоменах с XML в Opera и некоторых других
Недавно проделана работа по написанию пользовательского скрипта (браузеры Firefox, Chrome и Opera), в котором понадобилось обращаться к документу XML, находящемуся в старшем домене 2-го уровня из домена 3-го уровня. Работа открыла взгляд на некоторые особенности поведения браузеров, особенно, Оперы, причины которых до конца не выяснены. Но, так как такой скриптинг (чтение и запись в документы XML в наддомене) иногда необходим, хотел бы поделиться практическими результатами и показать открытые вопросы.
Персональные блоги → Кроссдоменный AJAX на основе CSS
Недавно столкнулся с проблемой как передать данные с сервера A в
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.
Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
CSSHttpRequest.get(
"http://www.nb.io/hacks/csshttprequest/hello-world/",
function(response) { alert(response); }
);Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
#c0 { background: url(data:,Hello%20World!); }
#c1 { background: url(data:,I’m%20text%20encoded%20in%20CSS!); }
#c2 { background: url(data:,I%20like%20arts%20and%20crafts.); }На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.
Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
Персональные блоги → Мой авторесайз IFRAME
Прочитав статейку Дмитрия Котерова о ресайзе ифрэймов решился поделиться своим решением.
Этим решением пользуемся на продуктивном сайте.
Итак, дано:
1. Нужно показывать в ифрэйме страницы с других доменов без скроллбара
2. Внутри ифрэйма могут совершаться переходы
3. Сайты в ифрэйме могут менять высоту без перегрузки (AJAX или просто раскрытие каких-нибудь невидимых элементов)
4. Во включаемые страницы должно включаться кода по минимуму
5. Решение не должно портить историю посещение браузера и должно работать в актуальных версиях популярных браузеров
6. Решение должно работать в обоих случаях master.site и www.master.site
Этим решением пользуемся на продуктивном сайте.
Итак, дано:
1. Нужно показывать в ифрэйме страницы с других доменов без скроллбара
2. Внутри ифрэйма могут совершаться переходы
3. Сайты в ифрэйме могут менять высоту без перегрузки (AJAX или просто раскрытие каких-нибудь невидимых элементов)
4. Во включаемые страницы должно включаться кода по минимуму
5. Решение не должно портить историю посещение браузера и должно работать в актуальных версиях популярных браузеров
6. Решение должно работать в обоих случаях master.site и www.master.site
JavaScript → Авторесайз IFRAME и безопасный способ передачи информации с одного домена на другой
Как известно, при работе с фреймами для обеспечения безопасности браузеры не позволяют Javascript-коду обращаться со страницы одного домена на страницу другого домена. В этой краткой статье мы рассмотрим аспекты кросс-доменной работы в Javascript, опишем один из «хороших» частных случаев, а в конце — я надеюсь в хабракомментах получить ответы на оставшиеся вопросы.UPD1: те, кто здесь впервые, — обязательно читайте комментарии к этой статье, в них очень много интересного накидали (как я и надеялся). Спасибо!
UPD2: найдено решение задачи авторесайза для всего, кроме Opera < 10.
UPD3: полностью кроссбраузерное решение задачи с ресайзом приводится ниже. Его особенности: а) не портится history, б) работает даже в Опере 7 и IE6, в) для ускорения работы высота фрейма всегда делается кратной N=30 пикселям. Фактически, там 2 алгоритма — для IE (через location.hash) и для «не-IE» (через window.name и «простукивание» возможных высот в цикле). См. также комментарии к статье, там разъяснения, почему так, а не иначе.
UPD4: статья начала принимать черты монументальной, посему она переехала ко мне в Наблы на dkLab: dklab.ru/chicken/nablas/58.html — там же все примеры кода самой последней актуальности. Но, конечно, в случае изменений я буду их и тут тоже анонсировать, добавляя UPD5, UPD6 и т.д.
JavaScript → Шпаргалка => Cross Domain AJAX. Dynamic script Tag Hack
Так сложилось исторически (из-за соображений безопасности), что Javascript-обьект XMLHttpRequest, который лежит в основе AJAX, не может делать кросс-доменные вызовы. Это бесполезное ограничение: для злоумышленников не представляет особой проблемы, а для разработчиков создает некоторое неудобство. В следующих поколениях браузеров эту проблему обещали решить, но не раньше чем W3C хотя бы одобрит новые стандарты.
Есть море хаков чтобы обойти это ограничение, но самый популярный это Dynamic script Tag Hack. Именно через этот хак организован доступ к многим API современных веб-приложений.
Есть море хаков чтобы обойти это ограничение, но самый популярный это Dynamic script Tag Hack. Именно через этот хак организован доступ к многим API современных веб-приложений.
Веб-разработка → Hivext — Платформа для разработки веб приложений

Рады вам сообщить о открытии embryo версии платформы веб-сервисов. Мы благополучно решили ряд технических проблем и архитектурных вопросов. И теперь имеем возможность поделится с вами плодами нашей работы. Итак, регистрация открыта!
Веб-разработка → Hivext: Платформа веб-сервисов

Продолжаем знакомить читателей хабра с разработкой в области платформенного построения приложений. Освежая память, напомним что Hivext — это платформа веб-сервисов для веб-приложений, цель которой предоставить набор сервисов для полноценной и удобной разработки Web, Desktop и Mobile приложений.
В этой статье мы раскроем тему архитектуры, что представляет платформа и как она должна выглядеть по замыслу разработчиков, мы постарались ответить на эти вопросы в виде блок схемы, которая уже появлялась в докладе по платформе на CodeCamp 2009.
Также в настоящей статье мы рассмотрим и расскажем про основные изменения и доработки с момента последней публикации статьи. В платформу добавились два «вкусных» сервиса.
Веб-разработка → (Java) Tomcat: делаем кросс-доменную сессию
Описание задачи:
Вы делаете проект на java под Tomcat. И решили организовать разделы своего сайта в виде поддоменов.
К примеру, на сайте www.domen.xx сделать разделы: mail.domen.xx, user.domen.xx и т.п. В какой-то момент разработки вы с удивлением обанружите, что пользовательская сессия вопреки ожиданиям существует строго в рамках одного домена. То есть юзер авторизовавшись на главной странице (www.domen.xx), переходя почту (mail.domen.xx), теряет авторизацию.
Дело в том, что сессия привязывается к клиенту через cookie с именем JSESSIONID и с пустым доменом. А когда домен не указан, браузер использует полный текущий домен. То есть сессия привязывается не к «domen.xx», а к «www.domen.xx». По неизвестной мне причине в Томкэте нет настроек позволяющих управлять этим поведением.
Веб-разработка → Hivext: Платформа веб сервисов

Hivext
Это платформа веб-сервисов с общим интерфейсом доступа к ним из разных языков программирования. Цель Hivext предоставить полезные разработчикам веб-сервисы, обеспечить их стабильную работу и в тоже время простоту внедрения в проекты. Hivext поможет соединить множество существующих платформ через единый API.
Если вы хотите легко и быстро создавать веб-приложения, включая разработку для мобильных устройств, то платформа очень интересный инструмент.
Предыдущая статья полезна для ознакомления с платформой, ее архитектурой, целями и задачами. В этой статье мы продолжаем публикацию изменений и новых сервисов, добавленных в платформу за последнее время.