【问题标题】:unable to read xml file within project folder using AJAX request无法使用 AJAX 请求读取项目文件夹中的 xml 文件
【发布时间】:2017-08-18 05:44:15
【问题描述】:

我正在尝试读取一个简单的 xml 文件,我将我的 xml 文件放在项目根文件夹中,但是当我访问 xml 文件时,它仍然显示 404 not found 我不知道为什么如果有人知道请帮助我。

这是我的 NewFile.xml 中的内容

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<button onclick="loadxml()">Load xml Document</button>
<div id="display"></div>
</body>
<script type="text/javascript">
function loadxml(){
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechage = function(){
        if(this.readyState==4 && this.status==200){
            myfunction(this)
        }
    };
xhttp.open('get',"NewFile.xml",true);
xhttp.send();

}
function myfunction(xm){
    var i=0;
    var table = "<tr><th>Artist</th><th>Title</th></tr>";
    var x = xm.responseXml;
    var cd = x.getElementsByTagName("CD");
    for (i = 0; i<= cd.length;i++){
        table += "<tr><td>" + cd[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue  + "</td><td>"  
        + cd[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</td></tr>";
    }
    document.getElementById("display").innerHTML = table;


}
</script>
</html>

this is my project path

【问题讨论】:

    标签: javascript java jquery ajax


    【解决方案1】:

    如果您使用的是 *nix 系统,那么“NewFile.xml”与“newfile.xml”不同。如果不是这样,那么我猜你的项目的根源不是你认为的。在许多框架中,静态文件的根目录位于名称为“public”的子目录中

    根据该屏幕截图,您的 xml 文件似乎位于 index.html 文件所在的父目录中。

    【讨论】:

    • 你好@Momus我的文件名是NewFile.xml,请在这里查看我的项目结构postimg.org/image/mjyme5bp9
    • 好吧,就像我在回答的编辑中所说的那样,xml 文件似乎位于 index.html 上方的目录中。 “NewFile.xml”是 index.html 的相对路径,因此 xml 文件需要位于同一目录中。
    • Thankyou @Momus 现在该错误已清除,但是当我单击加载 xml 文档按钮时,它什么也没有返回 ..
    • 感谢我清除了几个拼写错误
    • 在浏览器中打开一个控制台,然后添加console.log(xhttp.responseText);在代码的 onreadystatechange 块中查看正在加载的内容。您还可以在 if 语句中添加一个 console.log() 以确保它成功,并在 myfunction 中添加一个以确保它被调用。
    【解决方案2】:

    NewFile.xml 无法从您输入的路径访问。 根据我的 NewFile.xml 在外部文件夹中。 你可以试试

    xhttp.open('get',"../NewFile.xml",true);
    

    【讨论】:

    • 谢谢你,现在错误已被清除,但是当我点击加载 xml 文档按钮时它什么也不返回
    • 感谢我清除了几个拼写错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2012-12-26
    相关资源
    最近更新 更多