Получение файла с сервера с использованием Javascript - PullRequest
3 голосов
/ 12 июля 2011

Итак, я написал немного JavaScript, чтобы получить XML-файл со своего рабочего стола и отобразить его на HTML-странице. Однако теперь я добавил свой xml-файл на веб-сервер (mongoose). Я хочу вызвать файл с этого сервера, но всякий раз, когда я вызываю файл с сервера, он не работает, но когда я вызываю его с рабочего стола, он загружается нормально.

Я хочу поменять

xmlhttp.open("GET","Devices.xml",false);

с

xmlhttp.open("GET","http://localhost:8080/Devices.xml",false);

Вот код

<html>
<head>

<script type="text/javascript">
  if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.open("GET","Devices.xml",false);
  xmlhttp.send();
  xmlDoc=xmlhttp.responseXML; 


  // the <Device> list
  x = xmlDoc.getElementsByTagName('Device');

  // make a function that extracts the attributes out of a Node
  function getDeviceAttributes(dvc) {
    var name = dvc.getAttribute("name");
    var uuid = dvc.getAttribute("uuid");
    var id   = dvc.getAttribute("id");
    return "<p>name: " + name + "<br> uuid: " + uuid + "<br> id: "+ id + "</p>";
  }

  // loop through the list
  // assuming order doesn’t matter
  var txt = '';
  for (var i = x.length; i--;) {
    txt += getDeviceAttributes(x[i]);
  }

  //show the result on page load
  window.onload = function() {
    document.getElementById("showDevices").innerHTML = txt;
  };

</script>
</head>

<body>

<div id='showDevices'></div>

</body>
</html>

Кто-нибудь знает, как мне заставить это работать?

Мне сказали использовать AJAX и Jquery, но я не знаю, как и даже с чего начать.

1 Ответ

4 голосов
/ 12 июля 2011

Похоже, вы повторяете много работы, которую jQuery может сделать для вас. Ознакомьтесь с документацией для метода получения запроса

Так что-то вроде этого:

$.get('http://localhost:8080/Devices.xml', function(data) {
    $('#showDevices').html(data);
});

Я считаю, что это jQuery для того, что вы пытаетесь сделать. Надеюсь, это поможет.

-Charlie

Просто несколько общих советов, вы также можете использовать функцию .load () ajax, если вы не хотите анализировать ответ, и это:

window.onload = function() {
    document.getElementById("showDevices").innerHTML = txt;
};

можно сделать в jQuery следующим образом $("#showDevices").html(txt);

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