繁体   English   中英

javascript xmlhttprequest无法正常工作

[英]javascript xmlhttprequest won't work

我正在为一个新项目学习javascript。 我看过许多关于javascript和xmlhttprequest的教程,但是当我尝试运行解码时,它将无法正常工作。 有人可以帮我吗

这是我的html + javascript代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>xml reader</title> </head> <body> <script type="text/javascript"> var xmlhttp; var xmldoc; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=stateChange(); xmlhttp.open("GET","info.xml",true); xmlhttp.send(null); xmldoc = xmlhttp.responceXML.documentElement; document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue); </script> </body> </html> 

这是我的xml文件:

 <?xml version="1.0" encoding="utf-8"?> <info> <name>test</name> <nummber>10</nummber> </info> 

您的JavaScript中有一个ReferenceError,它阻止它完全执行。 “ stateChange”未定义。 您需要定义stateChange函数。

而且看起来“响应”的拼写错误(响应)。

请从W3Schools阅读本教程: http : //www.w3schools.com/XML/xml_http.asp

您非常接近,因此可以使用W3Schools作为资源来修复代码中的其他问题。

也许您应该使用xmlhttp.onreadystatechange并将其设置为实函数。 上面的示例中不存在stateChange()函数。

一个与您做的几乎相同的工作示例,在这里: http : //www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

未定义您在onreadystatechange上调用的stateChange() -添加一个名为stateChange的函数,一旦响应返回,该函数将被调用。

此类功能的示例:

function stateChange() {
    if(xmlhttp.readyState == 4){
        xmldoc = xmlhttp.responseXML.documentElement;
        document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue);
    }
}

您必须记住AJAX是异步的-响应返回时必须单独处理-因此readystatechanged事件用法...
从原始代码发送请求后删除两行(它们在stateChange函数中)。

您是否没有在请求中收到答案,或者是这样,您得到了答案但没有写到您的dom中? 最近,我遇到了问题,那个document.write在我的其中一个页面中不起作用。 我发现,在基于XHTML的页面中不允许document.write (我的页面是XHTML 1.1,您的页面是XHTML 1.0)。 所以这只是一个猜测。 您可以使用firebug扩展的firebug进行测试。 尽管所有常见浏览器都尊重该document.write ,但不允许该document.write并引发错误消息,但是IE在任何情况下均支持document.write ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM