Показать сообщение отдельно
  #1 (permalink)  
Старый 05.01.2009, 03:32
V0v@n
 
Сообщений: n/a

Как перередать responseXML в ф-цию?
Здравствуйте! Помогите разобраться..
Вот код:

var respXml = 1;
var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()

{

...
}


function ajax ( params , serverAddress )

{

if (xmlHttp)

{
try

{

if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0))

{

xmlHttp.open("POST", serverAddress , true);

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


xmlHttp.onreadystatechange = handleRequestStateChange;

xmlHttp.send ( params);

}

}

catch (e)

{

displayError("search error: "+e.toString());

}

}

}


function handleRequestStateChange()

{
if (xmlHttp.readyState == 4)

{
if (xmlHttp.status == 200)

{

respXml = xmlHttp.responseXml;

}

else

{

displayError("handleRequestStateChange error: "+xmlHttp.statusText);

}

}

}


Вопрос - как перередать значение respXml в функцию для последующей обработки. Через return или глобальную переменную. Последняя почему-то не изменяется. Почему? Тогда весь код выше можно было бы записать в отдельный файл, он был бы универсальным, подключался при необходимости во всех случаях. Хотется получить примерто это:
var xml = ajax ( params , serverAddress );
или var xml = respXml;
//обработка xml

Вариант написать в
handleRequestStateChange()
..
respXml = xmlHttp.responseXml;
response(respXml);
Не подходит, потому что для разных запросов должны быть и разные обработчики..
Спасибо.
Ответить с цитированием