使用javascript获取XML

时间:2013-01-19 05:36:18

标签: javascript xml send

此代码不会执行。我认为xhttp.send()函数有问题。因为alert函数在它执行之前执行但alert函数在它执行之后没有执行:

<html>
<head>
    <title>PAGE OUTPUT</title>
    <script type="text/javascript">
    function aa()
    {   
        var xhttp;
        alert("hi welcome"); 
        if(window.XMLHttpRequest)
        {
            xhttp=new XMLHttpRequest();
            alert("hi");
        }
        else
        {
            xhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhttp.open("GET","vehicle.xml",false);
        alert("OPEN EXECUTED");
        xhttp.send();
        alert("SEND EXECUTED");
        xmlDoc=xhttp.responseXML;
        alert("HI I HAVE REACHED OVER HERE");
        var vehicle=xmlDoc.documentElement;
        var car=vehicle.firstChild.nodeValue;
        var price=car.firstChild.nodeValue;
        alert(price);
    }
    </script> 
</head>
<body>
<center><input type="submit" onclick="aa()"></center>
</body>

2 个答案:

答案 0 :(得分:1)

出于安全原因,您最好检查网址是否类似 file:/// path / to / file ,浏览器将无法从页面发送任何XHR(现在看来不合理)。

您应为此案例启动服务器,并在 http:// localhost / path / to / file 中访问该页面。我知道最简单的方法是启动Python SimpleHTTPServer。如果您使用的是MS Windows,则可以自己安装python,也可以在Mac /任何Linux发行版中使用。然后按照以下步骤操作

  • 启动一个终端(在MS Windows上,它被称为命令行提示符,使用Win + R然后键入cmd来启动一个终端)
  • cd到文件所在的路径
  • 执行python -m SimpleHTTPServer
  • 在浏览器中访问http://localhost:8000/html_file
  • 照常点击该按钮

现在你会看到那些alert。此外,如有必要,您可能需要将xmlDoc=xhttp.responseXML更改为xmlDoc = xhttp.responseText

然后尝试jQuery,这对ajax来说要容易得多。

答案 1 :(得分:0)

取消提交按钮单击

onclick="aa(); return false;"