Как читать XML-файл с помощью JS - PullRequest
0 голосов
/ 01 июня 2011

Я использую следующий код для чтения XML-файла из JS

function ReadFile(xmlPath) {

  oxmlhttp = null;

  try {
    // Firefox, Chrome, etc... Browsers
    oxmlhttp = new XMLHttpRequest();
    oxmlhttp.overrideMimeType("text/xml");
  } catch (e) {

    try {
        // IE Browser
        oxmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        return null;
    }
  }

  if (!oxmlhttp) return null;

  try {
     oxmlhttp.open("GET", xmlPath, false);
     oxmlhttp.send(null);
  } catch (e) {
     return null;
  }

  var xmlDoc = oxmlhttp.responseXML.documentElement;
  alert(xmlDoc);
  return oxmlhttp.responseText;

}

Он отлично работает для IE и Firefox, но не в Chrome.следующее исключение: «XMLHttpRequest не может загрузить файл. Запросы перекрестного происхождения поддерживаются только для HTTP».должно произойти, когда я использую хром.

Кто-нибудь может знать, как прочитать XML-файл в Chrome с помощью JS?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Из-за ошибки возникла проблема с доменом запроса. Вы должны предупредить адрес домена запроса:

...
try {
   alert(xmlPath) //alerting
   oxmlhttp.open("GET", xmlPath, false);
   oxmlhttp.send(null);
} catch (e) {
   return null;
}
...

и xmlPath не может содержать и другой адрес домена. Прочтите этот вопрос об этом: Междоменный запрос Ajax из файла js

0 голосов
/ 01 июня 2011

Служите ли вы xml-файлу или тестируете его с помощью файловой системы?

Если вы используете файловую систему, я бы рекомендовал вместо этого запустить небольшой HTTP-сервер на директории вашего сайта.

Вы можете легко запустить HTTP-сервер для обслуживания каталога, например, обслуживать текущий каталог с помощью Python:

$ python -m SimpleHTTPServer

Или, если вы используете Windows, возможно, вам больше понравится HFSдля той же цели: http://www.rejetto.com/hfs/

Приветствия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...