Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не получается загрузить XML документ в JavaScript (https://javascript.ru/forum/misc/16986-ne-poluchaetsya-zagruzit-xml-dokument-v-javascript.html)

Parez 01.05.2011 18:45

Не получается загрузить XML документ в JavaScript
 
Требуется загрузить, а затем пропарсить XML документ. Я новичок в JavaScript, поэтому многого ещё не знаю.

Вот код:
var xmlDoc = new XMLHttpRequest();
xmlDoc.open('GET', 'test.xml', false);


И в любой момент времени, когда я вывожу xmlDoc.readyState, то получаю 1. В чём может быть проблема? Подскажите, пожалуйста.

Magneto 01.05.2011 22:54

Читать http://xmlhttprequest.ru/

Parez 02.05.2011 12:10

Ну прочитал. Всё равно не работает. Ничего принципиально нового не узнал. Надо всего-то загрузить xml файл из той же директории.

По-моему, вопрос достаточно конкретный, чтобы дать на него такой же конкретный ответ.

Kolyaj 02.05.2011 12:26

Цитата:

Сообщение от Parez
Ну прочитал.

Вы обратили внимание на первую фразу?
Цитата:

Объект XMLHttpRequest (или, сокращенно, XHR) дает возможность браузеру делать HTTP-запросы к серверу без перезагрузки страницы.
Вы ведь страницу не с диска в браузере открываете?

Parez 02.05.2011 12:32

Вообще с диска... А что? Мне же не требуется обращения к серверу и к базам данных. Может конечно я не совсем понимаю устройства JavaScript, но файл из той же директории обычно читается без проблем и без обращения к серверу. Во всяком случае во Flash'е всё происходит именно так, хотя он тоже расположен на клиенте.

JavaScript вообще может считывать файлы из той же директории (или выше), из которой запускается, без обращения к серверу?

Kolyaj 02.05.2011 12:57

JavaScript встраиваемый язык. Он работает с тем, что ему предоставляет окружение. Это к слову "что умеет JavaScript".

В данном случае окружение -- браузер. Браузер предоставляет JavaScript-у объект XMLHttpRequest для запросов к серверу по протоколу HTTP. Обращения к диску это не протокол HTTP, очевидно. Хотя некоторые браузеры пытаются нивелировать разницу, в любом случае это неправильно. То, что браузеры умеют открывать страницы с диска не значит, что XMLHttpRequest умеет их читать.

Другими словами: XMLHttpRequest -- это HTTP клиент, он умеет делать запросы к HTTP серверу. Диск -- не сервер.

Parez 02.05.2011 13:01

То есть мне без помощи сервера никак не считать нужный файл?

walik 02.05.2011 13:05

Попробуйте через iframe его открыть к примеру

Gvozd 02.05.2011 13:06

кроссбраузерно-никак.

Parez 02.05.2011 13:39

Очень жаль.. Всем спасибо.


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