Javascript анализирует xml из локального файла

    var xmlReq,
        xmlDoc;

    xmlReq = new XMLHttpRequest();
    xmlReq.open("GET", filename, false); //synchronous GET
    xmlReq.send(null);

    xmlDoc = xmlReq.responseXML;
    alert(xmlDoc);

Я пытаюсь использовать вышеупомянутый код для загрузки xml из локальной файловой системы. имя файла переменной является относительным путем (../Gfx/Sprite/test_sprite.xml) и работает как локально, так и при запуске страницы с веб-сервера. Что делает это странным, так это то, что я вижу, что файл xml загружается (используя веб-инспектор в сафари), но xmlReq.responseXML/xmlReq.responseText возвращает null...

Что я здесь делаю неправильно?


person Robin Heggelund Hansen    schedule 04.07.2011    source источник
comment
Я думаю, вам нужно использовать этот xmlDoc = xmlReq.responseXML; только внутри onreadystatechange   -  person Sandeep Manne    schedule 04.07.2011
comment
Попробовал это, а затем переписал код (см. редактирование), все равно нет сигары...   -  person Robin Heggelund Hansen    schedule 04.07.2011
comment
Но без использования onreadystatechange это не сработает, вы выполняете асинхронный запрос, что означает, что управление не будет ждать, пока запрос не будет обработан, поэтому вам нужно привязать прослушиватель событий для проверки изменений состояния этого запроса. Так что меняйте на старый.   -  person Sandeep Manne    schedule 04.07.2011
comment
'false' bool в xmlReq.open должен сделать запрос синхронным... Кроме того, я пробовал onreadystatechange так, как вы предложили, но это не сработало...   -  person Robin Heggelund Hansen    schedule 04.07.2011


Ответы (1)


Webkit не разрешает AJAX-запросы к локальной файловой системе.

person Dr.Molle    schedule 04.07.2011
comment
Есть ли другой способ загрузить этот XML-файл? - person Robin Heggelund Hansen; 04.07.2011
comment
Должна быть возможность использовать флэш-память для получения xml - person Dr.Molle; 04.07.2011