0

此代码不会执行。我认为该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>

4

2 回答 2

1

出于安全原因,您最好检查 URL 是否类似于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在您的浏览器中访问
  • 像往常一样点击那个按钮

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

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

于 2013-01-19T09:19:30.873 回答
0

取消提交按钮点击

onclick="aa(); return false;"
于 2013-01-19T05:55:57.613 回答