【发布时间】:2011-07-04 11:32:06
【问题描述】:
var xmlReq,
xmlDoc;
xmlReq = new XMLHttpRequest();
xmlReq.open("GET", filename, false); //synchronous GET
xmlReq.send(null);
xmlDoc = xmlReq.responseXML;
alert(xmlDoc);
我正在尝试使用上述代码从本地文件系统加载 xml。变量文件名是一个相对路径 (../Gfx/Sprite/test_sprite.xml) 并且在本地和从 Web 服务器运行页面时都有效。是什么让这个奇怪的是,我可以看到 xml 文件加载(在 safari 中使用 web 检查器),但是 xmlReq.responseXML/xmlReq.responseText 返回 null...
我在这里做错了什么?
【问题讨论】:
-
我认为你需要使用这个 xmlDoc = xmlReq.responseXML;仅在 onreadystatechange 内部
-
试过了,然后重写了代码(见编辑)仍然没有雪茄......
-
但是如果不使用 onreadystatechange 这将不起作用,您正在执行异步请求,这意味着控制不会等到请求被处理,因此您需要绑定事件侦听器来检查此请求的状态更改。所以用旧的替换它。
-
xmlReq.open 中的 'false' bool 应该使请求同步...此外,我确实按照您的建议尝试了 onreadystatechange,但它没有用...
标签: javascript safari xmlhttprequest