使用 Javascript 从服务器获取文件
Posted
技术标签:
【中文标题】使用 Javascript 从服务器获取文件【英文标题】:Getting a file from a server using Javascript 【发布时间】:2011-10-03 15:18:27 【问题描述】:所以,我编写了一些 javascript 从我的桌面抓取一个 xml 文件并将其显示在一个 html 页面上。但是,我现在已将我的 xml 文件添加到网络服务器(猫鼬)。我想从该服务器调用文件,但是每当我从服务器调用文件时它都不起作用,但是当我从桌面调用它时它加载正常。
我想换
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】:看起来您正在重复 jQuery 可以为您完成的大量工作。查看Get request method的文档
所以是这样的:
$.get('http://localhost:8080/Devices.xml', function(data)
$('#showDevices').html(data);
);
我相信这就是你想要做的事情的 jQuery。希望对您有所帮助。
-查理
只是一些通用建议,如果您不想解析响应,也可以使用 .load() ajax 函数:
window.onload = function()
document.getElementById("showDevices").innerHTML = txt;
;
可以像这样在jQuery中完成$("#showDevices").html(txt);
【讨论】:
以上是关于使用 Javascript 从服务器获取文件的主要内容,如果未能解决你的问题,请参考以下文章