2013-01-19 57 views
0

此代码不会执行。我认为xhttp.send()函数有问题。因为alert功能,它执行,但alert功能之前之后不执行:使用javascript获取XML

<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> 

+0

你是否试图将此页作为本地文件系统中的文件?这会导致跨站点XHR,并且大多数浏览器都会禁止它。 – neuront

+0

这两个文件都在同一个文件夹中...我不认为这应该是一个问题 –

+0

浏览器将无法发送任何XHR,如果您访问本地文件。请在下面看到我的答案。 – neuront

回答

1

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

您应该为这种情况启动服务器,并访问该页面http:// localhost/path/to/file。我知道的最简单的方法是启动一个Python SimpleHTTPServer。如果你使用的是MS Windows,你可以自己安装python,或者它可以在Mac /任何Linux发行版中使用。然后按照下列步骤

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

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

然后尝试jQuery,这对于ajax来说更容易。

0

取消提交按钮点击

onclick="aa(); return false;" 
+0

我试图从xml文件vehicle.xml中获取一些值,但声明xhttp.send()没有执行,我想......文件(即vehicle.xml和这个文件都在同一个文件夹中) –