javascript xmlhttprequest 不起作用
我正在为一个新项目学习 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>
I'm learning javascript for a new project.
I have seen many tutorials about javascript and xmlhttprequest,
but when I try to run decode it won't work.
can somebody help me.
here is my html+javascript code:
<!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>
here is my xml file:
<?xml version="1.0" encoding="utf-8"?>
<info>
<name>test</name>
<nummber>10</nummber>
</info>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
也许您应该使用 xmlhttp.onreadystatechange 并将其设置为真正的函数。上面的示例中不存在函数 stateChange()。
这里有一个很好的工作示例,它的功能与您几乎相同:
http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
maybe you should use xmlhttp.onreadystatechange and set it to a real function. the function stateChange() does not exist in the above example.
a good working example that does almost the same thing as you do is here:
http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
JavaScript 中存在 ReferenceError,导致其无法完全执行。 “stateChange”未定义。您需要定义 stateChange 函数。
另外,“响应”似乎拼写错误(响应)。
请阅读 W3Schools 提供的本教程: http://www.w3schools.com/XML/xml_http.asp
您已经非常接近了,因此请使用 W3Schools 作为资源来修复代码中的一些其他问题。
You have a ReferenceError in your JavaScript that prevents it from executing completely. "stateChange" is undefined. You need to define the stateChange function.
Also it looks like "response" is spelled wrong (responce).
Please go through this tutorial from W3Schools: http://www.w3schools.com/XML/xml_http.asp
You're very close so use W3Schools as a resource to fix up some other problems in your code.
您调用的
onreadystatechange
未定义stateChange()
- 添加一个名为 stateChange 的函数,响应返回后将调用该函数。此类函数的一个示例:
您必须记住 AJAX 是异步的 - 响应必须在返回时单独处理 - 因此
readystatechanged
事件用法...从原始代码中发送请求后删除这两行(它们位于
stateChange
函数中)。stateChange()
that you callonreadystatechange
is not defined - add a function named stateChange that will be called once the response returns.An example of such a function:
You must remember that AJAX is asynchronous - the response must be handled separately at the time it returns - hence the
readystatechanged
event usage...Remove the two lines after sending the request from your original code (they are in the
stateChange
function).您是否没有在请求中收到答案,或者可能是这样的情况,您得到了答案,但它没有写入您的 dom 中?最近我遇到了一个问题,
document.write
在我的一个页面中不起作用。我发现,基于 XHTML 的页面不允许使用document.write
(我的页面是 XHTML 1.1,你的页面是 XHTML 1.0)。所以这只是一个猜测。您可以使用 Firefox 的 firebug-extension 对此进行测试。尽管所有常见浏览器都不允许document.write
并抛出错误消息,但 IE 在任何情况下都支持document.write
...Are you don't receiving an answer in the Request or may it be the case, that you get an answer but it's not written into your dom? Lately I had the problem, that
document.write
wouldn't work in one of my pages. I found out, thatdocument.write
is not allowed in XHTML-based pages (My page was XHTML 1.1, yours is XHTML 1.0). So this is just a guess. You could test this with the firebug-extension for firefox. Althought all common browsers respect, thatdocument.write
is not allowed and throw a error-message, IE does however supportdocument.write
in any case...