XMLHttpRequest: обработка ответа, если не задана кодировка в content-type

Коля Дубр
На сайте с 02.03.2005
Offline
153
964

Необходимо решение только под Mozilla, речь идет о расширении. Вдруг кто знает?

Нужно прочитать ответ с сервера, который я не контролирую. Возможна ситуация, когда сервер не отдает кодировку в заголовках. В этом случае ответ приходит "вопросиками". Помогает

req.overrideMimeType('text/xml; charset=windows-1251')

перед отправкой запроса. Но кодирвка совсем не обязательно будет windows-1251, и совсем не обязательно не указана — узнать это можно только после получения ответа. Но отправлять еще один запрос после обработки ответа, в случае, если в заголовках не передана кодировка — не хочется. Есть варианты, как это победить? Заранее благодарен.

Кросспостинг с xpoint ;)

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
Kolyaj
На сайте с 28.03.2006
Offline
69
#1

Коля Дубр, если найдете какое-нибудь универсальное решение, напишите, пожалуйста, тоже интересует.

По теме: если предположить, что все страницы домена имеют одну кодировку, и требуется загрузить данные с того же домена, который открыт, то можно попробовать узнать кодировку открытой страницы.

mustafa
На сайте с 28.10.2005
Offline
202
#2

Коля Дубр, Колян, есть универсальное решение, написаное грамотными кодерами. Работает во всех браузерах на ура. http://dklab.ru/lib/JsHttpRequest/ - реализацмя AJAX. Единственный минус - большой исходный код либы - я обрезал раза в 3 для своих нужд.

p.s. с проблемой кодировок никогда не сталкивался...

Kolyaj
На сайте с 28.03.2006
Offline
69
#3

mustafa, в этой либе есть один большой недостаток - она не является чистым JavaScript'ом, а требует еще серверной части, что в большинстве случаев неудобно, и частенько (и как я понимаю в данной задаче тоже) вообще невозможно. Именно потому, что у нее есть серверная часть, с кодировкой проблем и не возникает.

Коля Дубр
На сайте с 02.03.2005
Offline
153
#4

mustafa, библиотечка Котерова, определенно, рулит, но когда надо что-то делать под веб, и когда нужна кросс-браузерность. Запихивать ее в chrome - все-таки тяжеловатое решение. К тому же, проглядев код, я не заметил, где там можно обойти мою проблему с кодировкой. Хотя, все равно спасибо за идею: на форуме ДКЛаба я со своим вопросом проспамиться-то и забыл, сейчас исправим =))

Kolyaj, ну на xpoint'e мне ответил великий человек Владимир Палант =) Его вариант, в принципе, должен работать, однако кажется мне тоже тяжеловатым. Я вот что думаю: надо бы залезть в исходники и поглядеть, как мозилла обрабатывает charset в заголовках. Не удивлюсь, если ровно так же =)

mustafa
На сайте с 28.10.2005
Offline
202
#5
Коля Дубр:
Его вариант, в принципе, должен работать, однако кажется мне тоже тяжеловатым.

отличный кстати вариант и абсолютно универсальный. А насчет тяжеловатости - это же на стороне клиента обрабатываться будет, а не у тебя на сервере - так что все гуд :)

Коля Дубр
На сайте с 02.03.2005
Offline
153
#6
mustafa:
это же на стороне клиента обрабатываться будет, а не у тебя на сервере - так что все гуд

Ну у меня специфика =) Клиенту надо будет по несколько сотен таких запросов подряд отрабатывать. Так что есть повод экономить.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий