不懂专业 2019-09-12 12:37 采纳率: 0%
浏览 184

在学习Ajax的时候,text文件能在页面显示出来,但是XML文件显示不出来

我部署在服务器上了,text的能够显示出来,但是 XML文件显示不出来

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>My First Ajax Script</title>
    <script src="script01.js"></script>
</head>
<body>
    <p>
        <a id="makeTextRequest" href="gAddress.txt">Request a text file</a><br>
        <a id="makeXMLRequest" href="us-states.xml">Request an XML file</a>
    </p>
    <div id="updateArea"></div>
</body>
</html>

JS代码如下:

window.onload = initAll;
var xhr = false;
function initAll(){
    document.getElementById("makeTextRequest").onclick = getNewFile;
    document.getElementById("makeXMLRequest").onclick = getNewFile;
}
function getNewFile(){
    makeRequest(this.href);
    return false;
}
function makeRequest(url){
    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();
    }
    else{
        if(window.ActiveXObject){
            try{
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){}
        }
    }
    if(xhr){
        xhr.onreadystatechange = showContents;
        xhr.open("GET",url,true);
        xhr.send(null);
    }
    else{
        document.getElementById("updateArea").innerHTML = "Sorry, but I couldn't create an XMLHttpRequest";

    }

}
function showContents(){
    if(xhr.readyState == 4){

        if(xhr.status == 200){
            if(xhr.responseXML && xhr.responseXML.childNodes.length > 0){
                var outMsg = getText(xhr.responseXML.getElementByTagName("choices")[0]);
            }
            else{
                var outMsg = xhr.responseText;
            }
        }
        else{
            var outMsg = "There was a problem with the request" + xhr.status;
        }
        document.getElementById("updateArea").innerHTML = outMsg;
    }
    function getText(inVal){
        if(inVal.textContent){
            return inVal.textContent;
        }
        return inVal.text;
    }
}
  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-09-12 13:34
    关注

    在这个方法 getText 后面加 debugger 打上断点,输出一下 inVal ,如果响应内容不是 JSON 而是普通 text 字符的化,后面的 . 操作会报 js 错误。

    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)