2011-06-08 112 views
0

我开发一个基于AJAX的风险式的游戏,和合作者(因为左谁拥有)写了这个代码:为什么在测试成功时定义AJAX进程失败?

function init() { 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","risk.xml",true); 
xmlhttp.send(null); 
xmldoc=xmlhttp.responseXML; 
[snip] 
document.getElementById('player').value='red' 
[snip] 
redterrs=xmldoc.getElementsByTagName('redterrs')[0] 
blueterrs=xmldoc.getElementsByTagName('blueterrs')[0] 
purpleterrs=xmldoc.getElementsByTagName('purpleterrs')[0] 
greenterrs=xmldoc.getElementsByTagName('greenterrs')[0] 

当我尝试执行此我得到的WebKit这个错误:“未捕获TypeError:无法在redterrs = xmldoc.getElementsByTagName('redterrs')[0]“上调用null方法'getElementsByTagName',但是当我在Firebug中使用Firebug时,它告诉我xmldoc没有被定义。

感谢您的任何帮助。

编辑:如果有人想看到更多这个,项目托管在http://code.google.com/p/risk-board-game

回答

0

要异步获取XML文档,但没有使用的事件处理程序,找出已经收到了XML文档时。由于您可能应该同步执行此操作,并且因为它更简单,请尝试使用此代替第3行:

xmlhttp.open("GET","risk.xml",false);