Показать сообщение отдельно
  #9 (permalink)  
Старый 23.03.2012, 14:30
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

Сообщение от Stropik Посмотреть сообщение
Где-то наткнулся на похожий случай, там решением было выставление заголовка вместо
Content-type: application/x-javascript; charset=utf-8
нужно было поставить
Content-type: application/json; charset=utf-8

то есть для конкретного типа данных кодировка устанавливается.
Немного не понял, где прописывать этот заголовок?
Вот последовательность:
при submit формы в скрипте проверяется поле и формируется строка запроса AJAX
...
	if(forma.raionfull.value!="") {
alert("проверка:"+ forma.raionfull.value); <-- здесь кодировка - ОК
		str += "~raion="+forma.raionfull.value;
	}
...

затем строка запроса отправляется в AJAX:
// функция, срабатываемая на основном интервале
function getData(curvar,data,obj,sess,dop) {
	var senddata = curvar+"|"+data+"|"+dop;
alert("данные="+data); <-- здесь кодировка - ОК
	// запросим сервер
		var newData=getXMLDocument(senddata,sess);
		// проверим - если равна null
		if(newData!="null" || newData!="") {
			if(obj=="") {
				return(newData);
			} else {
				document.getElementById(obj).innerHTML = newData;
			}
		}
}
// функция запроса данных с сервера
function getXMLDocument(data,sess) {  
	var xml1;  
alert("запрос:"+data); <-- здесь кодировка - ОК
	var fullurl = url+"/request.php?data="+ data+"&ses="+sess;
	if(window.XMLHttpRequest) {  
		xml1=new XMLHttpRequest();  
		xml1.open("GET", fullurl, false);  
		xml1.send("");  
		// если надо получать именно XML, то включается это:
		//return xml1.responseXML;  
		// иначе будет только текст
		return xml1.responseText;
	} else if(window.ActiveXObject) {
			xml1=new ActiveXObject("Microsoft.XMLDOM");  
			xml1.async=false;  
			xml1.load(fullurl);  
			return xml1;  
	} else {
		alert("Загрузка XML не поддерживается браузером");  
		return null;  
	}
}

а уже на сервере делаю проверку, то получаю следующее:
saveerror("request: data=".$data);

в ИЕ:
2012-03-23 11:12:53 - request: data=cat_fullpoi|none=none~kod_obj=0~typ=0~vid=0~raion=��_val=0~id_val_ar=0~onlyfoto=0|

тогда как в Опера - всё правильно:
2012-03-23 11:13:43 - request: data=cat_fullpoi|none=none~kod_obj=0~typ=0~vid=0~raion=центр~id_val=0~id_val_ar=0~onlyfoto=0|
Ответить с цитированием