|
|
|
| Первый раз попытался написать АЯКС приложение с использованием XML. Застопорился на моменте, когда необходимо получить данные полученные с сервера.
Привожу написанный код:
1) создание объекта
var request = null;
function createRequest(){
try{
request = new XMLHttpRequest();
}
catch(trymicrosoft){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(othermicrosoft){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(failed){
request = null;
}
}
}
if(request == null){
alert("Error creating request object!");
}
}
|
2) запрос данных с сервера:
function getTextPar(host,id,cat){
createRequest();
var url='http://'+host+'/ajax/descparam-ajax.php?catid='+cat+'&namepar='+id+'&data='+new Date().getTime();
request.open('GET',url,true);
request.onreadystatechange = openWind;
request.send(null);
return false;
}
|
3) получение и обработка данных с сервера:
function openWind(){
if(request.readyState == 4){
var xmlDoc = request.responseXML;
var parametrid = xmlDoc.getElementsByTagName("parametrid")[2];
var valPar = unescape(parametrid.firstChild.nodeValue);
alert(valPar);
//document.getElementById(id).innerHTML = text;
}
}
|
4) серверный скрипт:
<?php
header("Content-Type: text/xml; charset=windows-1251");
/*здесь запрс в БД, разбор результирующей таблицы, создание массива*/
echo '<?xml version="1.0" encoding="utf-8"?>';
?>
<totals>
<parametrid>12</parametrid>
<parametrid>10</parametrid>
<parametrid>Привет!</parametrid>
</totals>
|
Проблема в следующем. Если в XML содержатся любые русские текстовые данные IE обнаруживает ошибку в функции openWind(): 'требуется объект'. В Опере и ФаерФоксе таких ошибок не наблюдается. Что это может быть? Кодировка? Как можно исправить? Помогите разобраться, пожалуйста. | |
|
|
|
|
|
|
|
для: simbel
(04.02.2008 в 16:02)
| | Если ты посылаешь в запросе переменные, в которых могут быть спецсимволы или не английские буквы, то тебе надо самому ручками их кодировать. Для этого есть функция encodeURIComponent()
var url='http://'+host+'/ajax/descparam-ajax.php?catid='+encodeURIComponent(cat)+'&namepar='+encodeURIComponent(id)// Другие переменные
|
Попробуй, должно помочь... | |
|
|
|