LINUX.ORG.RU

В IE7(8) Content-Type должен быть [забанен]


0

1

Камрады, вопрос теоретический, но педалирует. Итак, есть два ajax-выражениях
1. jquery

$.ajaxSetup({
	contentType: 'application/x-www-form-urlencoded',
	type: "POST"
});
$.ajax({
	async: true,
	url: 'gl.php?id='+id+'&title='+title,
	success: function(data){
	if($('#galleria').length) $('#galleria').remove();
	$(data).appendTo('#pregallery');
	 $('#galleria').galleria();
	}
	
});

2. Нативный

var req = getXmlHttp()
req.onreadystatechange = function() {
	if (req.readyState == 4) {
		if(req.status == 200) {
			if($('#galleria').length) $('#galleria').remove();
			$(req.responseText).appendTo('#pregallery');
			 $('#galleria').galleria();
				
			}
		}
	}

var sends = 'id='+id+'&title='+title;
	req.open('POST', 'gl.php', true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(sends);
	req.close;

Проблема в том, что в первом случае кодировку utf-8 шайтан-браузер IE не ловит (затрудняюсь подобрать нужный термин). Файербаг показывает, что ajaxSetup() отрабатывает (меняет с GET на POST), а кодировка только во втором случае приходит требуемая, а именно utf-8.
Экспериментировал с content-type = utf-8 - тоже самое. Гугль выдает такое количество разнообразных ответов, что впору сайт создавать по решению этой проблемы. Давайте попытаемся закрыть еще одну.



Последнее исправление: terrakot (всего исправлений: 1)

>content-type = utf-8
это что такое?
Должно быть так:
Content-type: нужный_вам_content_type; charset=utf-8

И, да, как уже сказали, application/x-www-form-urlencoded — нет такого.

OramahMaalhur
()
Ответ на: комментарий от OramahMaalhur

оки, тоже с утра тупил, на ЛОР не заглянул. Сейчас попробуем, отпишусь. нигде в примерах jquery не видел, что можно так задавать контент-тайп (через точку с запятой)
я передавал так
contentType: 'charset=utf-8' а то что в посте - это по быстрому схематично

terrakot
() автор топика
Ответ на: комментарий от terrakot

>нигде в примерах jquery не видел, что можно так задавать контент-тайп

man HTTP. Жкверя там вообще не при делах.

anonymous
()

UPD 1

Применение указанного контент-тайпа результата не дало. Еще пара странных вещей.
Если на сервере использовать iconv (win-1251, utf-8) (схема), то в браузерах выходят кракозябры, а в недобраузере IE - в кодировке UTF-8 (по логике вещей). Выходит, что я строку через get или post именно для ie отправляю в кодировке windows-1251, несмотря на любые указания контент-тайпа и чарсета, так что ли, камрады? Дуракам IE8 закон не писан?
ведь страничка у меня, откуда уходят запросы на сервер, в utf-8. «страница», которая принимает параметры и возвращает результат - в utf-8. что за шайтан? Чего я не понимаю в жизни компании Microsoft?

terrakot
() автор топика
Ответ на: UPD 1 от terrakot

проверь настройки апача и пыха, если у тебя пых. Проверь фильтры в java.

Проверь, не изменится ли ситуация при включении и выключении «standards compatibility mode» в IE7/8. Если изменятся, нужный режим можно форсировать специальным http-заголовком.

stevejobs ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.