Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Загрузка XML документа (https://javascript.ru/forum/misc/17590-zagruzka-xml-dokumenta.html)

zeraid 25.05.2011 16:10

Загрузка XML документа
 
В общем вот код

draw2d.XMLSerializer_01.prototype.createXMLHttp=function()
{
if (typeof XMLHttpRequest != 'undefined')
return new XMLHttpRequest();
else if (window.ActiveXObject) {
var avers = ["Microsoft.XmlHttp",
"MSXML2.XmlHttp",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.5.0"];
for (var i = avers.getSize() -1; i >= 0; i--) {
try {
httpObj = new ActiveXObject(avers.get(i));
return httpObj;
} catch(e) {}
}
}
throw new Error('XMLHttp (AJAX) not supported');
}

draw2d.XMLSerializer_01.prototype.load=function(/*:Document*/ document, /*:String*/ url )
{
var ajaxObj = this.createXMLHttp();
ajaxObj.open("GET", url, true);
ajaxObj.processRequest = function(/*:Document*/ doc)
{
if (this.readyState == 4)
if (this.status == 200) {
var xml = this.responseXML;
new draw2d.XMLSerializer_01().fromXML(doc, xml);
}
}
ajaxObj.onreadystatechange = function() {
ajaxObj.processRequest(document);}
ajaxObj.send(null);
}


Он должен обращатся к файлу xml, делать десериализацию new draw2d.XMLSerializer_01().fromXML(doc, xml); и выводить объекты на экран.

Он этого не делает но и ошибку не выдает. Мне кажется что проблема в var xml = this.responseXML; возможно он тут получает значение NULL, хъотя в FireBUG в ответе выводит нормальный XML документ. Заголовок у него application/xml , в то время как responseXML тьребует заголовок text/xml, согласно http://xmlhttprequest.ru/. Как вы думаете в этом проблема или в чем то другом?

Если сделать ALERT сразу после var xml, то он выводит [object XMLDocument]. ЧТо это означает?

И сразу второй вопрос
По поводу создания xml документа (сохранения)

Вот функция:

draw2d.XMLSerializer_01.prototype.save=function(/*:Document*/ document, /*:String*/ url )
{
var ajaxObj = this.createXMLHttp();
ajaxObj.open("POST", url, true);
ajaxObj.setRequestHeader("Content-Type", "text/xml");

var reqBody = this.toXML(document);
ajaxObj.send(reqBody);
}


При нажатии на кнопку она срабатывает (согласно FireBUG) но в указанный файл информация не записывается\переписывает я. Как сделать чтобы она либо создавала сама файл либо реально в него записывала собранный xml документ. Как видите тут создается правильный заголовок.

Как вообще сменить заголовок????


Часовой пояс GMT +3, время: 03:40.