Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Robin Heggelund HansenОтветов: 1
    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...

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

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

javascriptxmlhttprequestsafari

Ответы

Ответ 1 · рейтинг 1 · Dr.Molle

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы