javascript - 在 Javascript/jQuery 中读取和显示 XML 内容

标签 javascript jquery xml

我使用下面的代码来读取 XML 文件并在同一屏幕上显示其中的详细信息。

<!DOCTYPE HTML>
<html>
 <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
    $(document).ready(function () {
        $("#xmlButton").click(function() {
            var xmlName = $('input:file').val();
            $("#container").append("File Name:- " + xmlName);
            $.get(xmlName,printData);       
        });

        function printData(data) {
            $(data).find("name").each(function(){
                $("#container").append('<br/>'+$(this).text());
            })
        }
    });
 </script>
 </head>

 <body>
 <h1> Upload XML </h1>
 <form name="uploadForm" id="uploadForm" type="Get" action="" >
    <input type="file" name="xmlFile" id="xmlFile">
    <div id="container"></div>
    <p><input type="button" name="xmlButton" id="xmlButton" value="Upload"></p>
 </form>
</body>
</html>

我的 XMl 输入文件如下

 <root>
  <info>
    <name>name 1</name>
    <place>Place 1</place>
  </info>
  <info>
    <name>name 2</name>
    <place>Place 2</place>
  </info>
  <info>
    <name>name 3</name>
    <place>Place 3</place>
  </info>
</root>

上面的代码在 Mozilla Firefox 32 中工作正常,当我按下“上传”按钮时,它在 Chrome 14 版本中给出以下错误

XMLHttpRequest cannot load file:///C:/fakepath/test.xml. Cross origin requests are only supported for HTTP

在 IE8 中,控制台仅显示文件名,不显示错误消息。

还有其他方法可以让它在 Chrome 和 IE 中运行吗?我的主要目的是读取 xml 文件并在同一屏幕中打印它们。

最佳答案

嗯,出现此错误是因为您尝试对本地文件系统执行 ajax 调用。当您执行跨域请求(不在当前域中的请求)时,大多数浏览器都会停止请求。 您需要先上传提交表单,然后当文件位于服务器上时,使用 ajax 加载。

另一种方式是使用HTML5,但您的浏览器需要支持它。 更多信息http://www.html5rocks.com/en/tutorials/file/dndfiles/

关于javascript - 在 Javascript/jQuery 中读取和显示 XML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26059006/

相关文章:

javascript - 正则表达式在应该返回 true 时返回 false

javascript - 使用 - jQuery 检测标签更改

java - 通过 xml 文件搜索文本的最佳方法

javascript - 在每轮 javascript for 循环中显示 html 结果

c# - 如何在 .NET 中解析联合和列表类型的值?

python:转义XML中的非ascii字符

javascript - 使用传递给函数的div id调用load,div id是一个参数

javascript - polymer 重复模板双向数据绑定(bind)

javascript - AngularJS UI 路由器 : ui-sref not updating URL in address bar?

jquery - 导航栏折叠不起作用