无法使用AJAX请求读取项目文件夹中的xml文件

时间:2017-08-18 05:44:15

标签: javascript java jquery ajax

Iam尝试读取一个简单的xml文件我把我的xml文件放在项目根文件夹中但是当我访问xml文件时它说404找不到我不知道为什么如果不知道请帮助我。

这是我的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

2 个答案:

答案 0 :(得分:0)

如果您使用* nix系统,那么&#34; NewFile.xml&#34;与&#34; newfile.xml&#34;不同。如果没有,那么我猜你的项目的根目录不在你想象的地方。在许多框架中,静态文件的根位于一个子目录中,其名称如&#34; public&#34;

根据该屏幕截图,您的xml文件看起来像是您的index.html文件所在的父目录。

答案 1 :(得分:0)

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

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