javascript - 当我读取本地文件时 Ajax 不工作

标签 javascript jquery html ajax xml

好吧,我已经连续 2 天无法解决这个问题了。这个例子在这里:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_xml2在 w3schools 网站上工作得很好。但是当我在 Notepad++ 中复制并粘贴代码时。它不起作用。我下载了 XML 文件。比我读到的 AJAX 不支持使用本地文件。我不明白这个??我有一个学校要处理本地 XML 文件的任务。当 AJAX 不支持使用本地文件时,我如何使用本地 XML 文件和 AJAX。我从助教那里得到的唯一回应是我应该使用 firefox...但是不...它不适用于:Chrome、Internet Explorer、Mozila、Opera.. 基本上什么都没有...

我知道这里有人问过类似的问题,但我就是做不到。如果有人知道如何修改此给定代码以在本地工作,我将不胜感激..提前致谢..

<!DOCTYPE html>
<html>
    <head>
        <script>
            function loadXMLDoc(url) {
                var xmlhttp;
                var txt, x, xx, i;
                if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp = new XMLHttpRequest();
                } else { // code for IE6, IE5
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        txt = "<table border='1'><tr><th>Title</th><th>Artist</th></tr>";
                        x = xmlhttp.responseXML.documentElement.getElementsByTagName("CD");
                        for (i = 0; i < x.length; i++) {
                            txt = txt + "<tr>";
                            xx = x[i].getElementsByTagName("TITLE"); {
                                try {
                                    txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                                } catch (er) {
                                    txt = txt + "<td> </td>";
                                }
                            }
                            xx = x[i].getElementsByTagName("ARTIST"); {
                                try {
                                    txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                                } catch (er) {
                                    txt = txt + "<td> </td>";
                                }
                            }
                            txt = txt + "</tr>";
                        }
                        txt = txt + "</table>";
                        document.getElementById('txtCDInfo').innerHTML = txt;
                    }
                }
                xmlhttp.open("GET", url, true);
                xmlhttp.send();
            }
        </script>
    </head>

    <body>
        <div id="txtCDInfo">
            <button onclick="loadXMLDoc('cd_catalog.xml')">Get CD info</button>
        </div>
    </body>
</html>

最佳答案

您不能使用本地文件。本地文件系统是沙盒的,因此,例如,您不能双击电子邮件附件中的 HTML 文档、在浏览器中打开它并让它将您的私有(private)文件上传到发件人的服务器。

如果您想在本地测试 Ajax,请安装一个本地网络服务器并通过它进行测试。

关于javascript - 当我读取本地文件时 Ajax 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605721/

相关文章:

php - 图像上的 CSS 黑色渐变

javascript - AngularJS 指令在隔离范围内的双向绑定(bind)未反射(reflect)在父范围中

javascript - 创建迪士尼尘埃风格的光标轨迹

javascript - mongodb 计算文档对

javascript - 单击时图像叠加效果

javascript - Meteor 不会运行 jQuery 代码

javascript - 未捕获的 TypeError : $(. ..).tableDnD 不是函数

html - 如何将具有图标的导航居中,以便文本与图标对齐?

c# - 如何防止从 asp.net linkbutton 回发

javascript - 从 MYSQL 获取 JSON 格式的结果并使用它