The Prodigy

XMLHTTPRequest: загрузка html-кода из внешнего файла

Понадобилось вот сделать одну вещь на сайте - загрузка html-блока в контент страницы с помощью java script. Практически то же самое, что и SSI (sever side includes), но это как бы  client side includes. :) Просто захотелось сделать это так, чтобы поисковик вообще не видел данного текста. Прямо в браузере в нужную область страницы между двумя div-ами подгружается текст из файлика news.html.

Делается это с помощью объекта XMLHTTPRequest. Нашел готовую библиотеку в виде двух файликов: ajax.js и ajax-dynamic-content.js. Сделал все как полагается, но… тут меня ждал облом. Вместо нужного блока новостей у меня во всех трех браузерах стали отображаться”кракозябры”:

XmlHttpRequest кодировка ajax
Гуглил, яндексил - все без толку. И заметка Cross-а про ajax и кодировку меня не спасла - другой у меня случай. Сделал маленький эксперимент - сконвертировал файл из windows-1251 в unicode - стало отображаться правильно. :) Само собой, меня это абсолютно не устраивало, но какие-то выводы можно было уже сделать…

В конце концов, решилось все очень просто. После того, как я (с подсказки bofh-a) прописал в конфиге апача строчку AddDefaultCharset windows-1251, ява-скрипт стал правильно выдавать текст. Просто в хеадерах не было никакой информации о кодировке файла, а внутри него такой информации быть не могло - это просто кусочек кода, который вставляется внутрь другой страницы. Вот и происходила такая ерунда.

Кстати, нашел весьма полезный сайт в тему. XMLHTTPRequest: описание, применение, частые проблемы: xmlhttprequest.ru.



Июнь 27th 2008 in SEO, Обо всем

Комментариев: 10 к записи “XMLHTTPRequest: загрузка html-кода из внешнего файла”

  1. xpisik сказал 27 Июн 2008 at 09:34 #

    Вообще работа с XMLHTTPRequest довольно проста - строчек 20-30 кода с учетом работы во всех браузерах. Рекомендую попробовать без библиотек.

  2. DeveloperGuru.NET сказал 27 Июн 2008 at 14:26 #

    А почему не использовать на сайтах кодировку UTF-8 ?

  3. сказал 27 Июн 2008 at 14:32 #

    Тот сайт - чистый “статик”, редактирую его в FAR Manager (+ plugin colorer). В ФАРе нереально работать с UTF-8.

  4. DeveloperGuru.NET сказал 27 Июн 2008 at 14:37 #

    Notepad++ поддерживает UTF-8

    В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.

  5. сказал 27 Июн 2008 at 14:47 #

    Да и обычный notepad тоже умеет в UTF8 сохранять. Но когда мноооого лет юзал FAR - переключаться на что-то другое смысла нет.

    > В общем, я не понимаю, зачем люди делают сайты в 1251 и имеют проблемы с кодировками.

    Ты знаешь, никогда до этого не видел проблем… Сроду… (Ну если не учитывать времена, когда в нете файлы держали сразу в нескольких кодировках плюс транслит :) ).

  6. Успешный вебмастер сказал 12 Июл 2008 at 02:36 #

    У меня кстати типа такого сапу отображало,пришлось изменить кодировку а то даже бабки не начислялись в сапе

  7. amxm сказал 20 Сен 2008 at 21:39 #

    jquery не пробывали?

  8. Diablo сказал 02 Мар 2009 at 20:06 #

    Смысл подгружать библиотеку jquery для простого вывода информации. Я на одном сайте парсил блок, менял кодировку и сохранял как js с документ врайт полученного контента. А на сайте просто подгружал сам скрипт.

  9. сказал 02 Мар 2009 at 20:47 #

    > Смысл подгружать библиотеку jquery для простого вывода информации.

    Просто чтоб не писать свой код.
    В итоге на странице примерно такой блок:

    (div id=”news-block”)(/div)
    (script type=”text/javascript”)
    ajax_loadContent(’news-block’,'/news.ssi’);
    (/script)
    (/div)

  10. сказал 18 Апр 2012 at 14:06 #

    В который раз в поисках решения сам себя нагугливаю. :)
    Чтоб больше не вспоминать эту проблему, прописал в .htaccess:
    AddDefaultCharset windows-1251 - чисто для этого сайта.

    А остальное - да, теперь только в UTF-8 делаю уже в NetBeans.

XmlHttpRequest: кодировка, ajax, charset, unicode






   Экскурсии по Москве: вднх - фонтаны, красная площадь, ночная москва .

   Случайные записи: достопримечательности Москвы, gps навигация
Другие посты блога: Цена нефти (когда нефть подешевеет),     RSS агрегаторы: online rss reader Grazr - агрегатор RSS каналов на собственном сайте!,     Свидетельство собственности,     Я знаю - тебе понравится. К гадалке не ходи!,     Как я падал с высоты 4500 метров...,     Как я билет на The Prodigy покупал...,     Фотосессия,