Здравствуйте! При выполнении ajax-скрипта в IE (и только в нём) возникает ошибка [object Error]. Но отсылка заголовка header ("Content-Type: text/xml; charset=windows-1251"); ...проблему не решает. Хотя возвращается то, что нужно: <?xml version="1.0" ?> <response>OK!</response> В чём ещё может быть причина?
Код (Text): var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; try { xmlHttp = new XMLHttpRequest(); } catch (e) { var XmlHttpVersions = new Array ("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft XMLHTTP"); for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) { try { xmlHttp = new ActiveXObject(XmlHttpVersions[i]); } catch (e) {} } } if (!xmlHttp) alert ("Ошибка создания объекта XMLHttpRequet."); else return xmlHttp; } function process(id,dir) { if (xmlHttp) { try { if (dir==1) //если рекомендуем автора { var params = "authid=" + id; xmlHttp.open("GET", "modules/recomauth.php?" + params, true); } else //если рекомендуем произведение { var params = "workid=" + id; xmlHttp.open("GET", "modules/recomwork.php?" + params, true); } xmlHttp.onreadystatechange = handleRequestStateChange; xmlHttp.send(null); } catch (e) { alert ("Невозможно соединиться с сервером:\n" + e.toString()); } } } function handleRequestStateChange() { if(xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { try { handleServerResponse(); } catch (e) { alert ("Ошибка чтения ответа: " + e.toString()); } } else { alert ("Возникли проблемы во время получения данных: \n" + xmlHttp.statusText); } } } function handleServerResponse() { var xmlResponse = xmlHttp.responseXML; if (!xmlResponse || !xmlResponse.documentElement) throw ("Invalid XML structure:\n" + xmlHttp.responseText); var rootNodeName = xmlResponse.documentElement.nodeName; if (rootNodeName == "parsererror") throw ("Invalid XML structure:\n" + xmlHttp.responseText); xmlRoot = xmlResponse.documentElement; if (rootNodeName != "response" || !xmlRoot.firstChild) throw ("Invalid XML structure:\n" + xmlHttp.responseText); responseText = xmlRoot.firstChild.data; myDiv = document.getElementById("OKDiv1"); myDiv.innerHTML = "<font color=green>" + responseText + "</font>"; }
Неужели никто не сталкивался?.. Странно - делаю всё по книгам, значит, не у меня одного должно было возникнуть...
hellhammer Если вы делаете всё тупо по книгам, даже не понимая что делает данный скрипт, то у вас никогда ничего не получится. Я весь код читать не буду. Где возникает ошибка? Номер строчки?
Ну откуда ж такие выводы При вызове handleServerResponse() выполняется исключение, значит, что-то в ней... В какой строчке - не знаю. Собственно, функция-то невелика. Последняя в коде. Я так понимаю, что функция просто структуры объекта не видит. Код (Text): var xmlResponse = xmlHttp.responseXML; if (!xmlResponse || !xmlResponse.documentElement) throw ("Invalid XML structure:\n" + xmlHttp.responseText); var rootNodeName = xmlResponse.documentElement.nodeName; Вот и не знаю - неправильно генерируется xml в php-модуле, или уже здесь при разборе что-то не то...