Кодировка .load()
Здравствуйте. Есть скрипт на сервере text.php, который отдает html в кодировке win1251, есть страница на сайте, которая тоже в кодировке win1251. Скрипт jquery выглядит типа так
.... function() { 156 /* Подгружаем содержимое в селект (AJAX) */ 157 var pointAjaxLink = jQuery(this).attr('href'); 158 if ( pointAjaxLink != '#' ) { 159 jQuery(this).animate({frankySuperStar:jQuery(this).height()},200,function(){ 160 jQuery('#activeAddress').load(pointAjaxLink); 161 }); 162 }; .... т.е. в #activeAddress подгружается то что открывается c адреса в переменной pointAjaxLink. При этом, в опере и огнелисе кодировка меняется на utf-8 и на странице див с нужным классом и подгруженными данными получается в кракозяблах. Подскажите, как их вставлять в win1251. Заранее спасибо. |
В начале php скрипта который будет возвращать ответ нужно писать
header('Content-type: text/html; charset="windows-1251"'); Тогда скрипт будет знать что кодировка в ответе будет не UTF-8 a win1251 ;) |
Так как раз делал. Сайт построен на битрикс. Кэширование отключал. Короче поменял load() на get() эффект тот же. Причем странное дело - глюк срабатывает через раз. то в нужной кодировке отдает то нет. И не систематически, рандомно. может 10 раз отдать в кодировке utf-8, потом пять раз в нужной win1251, а может еще как-нибудь самопроизвольно. После замены на get() проблема появилась и в хроме. Такие дела. Побороть пока не удалось. Думают три программиста и вот вы подключились.
|
Емнимс, в документации jQ где-то написано, что все аяксовые запросы работают исключительно в utf-8
|
да не правда. У меня работает. попробуйте вот так:
$.ajax( { type: "GET", cache: false, url: pointAjaxLink, data: "", success: function(data) { $('#activeAddress').html(data); } }); |
Здравствуйте, все! Спасибо всем кто участвовал. Переписал все используя .ajax(). использовал параметр cache: false (спасибо Positiv4eG) и указал кодировку в параметре contentType (хотя возможно зря, это ж в каком виде данные отправляются на сервер). Потом ублил весь кэш на сервере, все сессии, отключил кэширование. Глюк так и имел место быть.
Потом заметили, что у авторизованного пользователя такого не наблюдается. Проверили еще. Потом еще проверили. Короче потом сделали невидимую авторизацию для любого пользователя. Теперь все без глюков. Похоже на то что это какие-то замуты с кэшем битрикса. Пробовали снова, теперь и с .get() все работает. С .load() не пробовали, уже западло. Все. Концерт окончен). |
Цитата:
|
Kolyaj,
Смех смехом, а ковырять ошибки битрикс нет ни времени ни желания. |
Часовой пояс GMT +3, время: 00:41. |