当我尝试将元素标记从单独的xml文件加载到html文档中时,我最近开始遇到javascript问题。我知道我已经正确启用了XMLHttpRequest或activeX(取决于互联网浏览器),但是我在获取xml文件并打开它以访问它的标签时遇到了问题。为了打开文件,我尝试使用:
xhttp.open("GET",filepath,false);
xhttp.send();
xmlDoc=xhttp.responseXML;
代码似乎超过第一行,但它在第二行被绊倒。我想知道是否有人能够澄清.send()的功能,以及服务器权限是否可能出错;当这段代码运行时,IE 7/8告诉我“访问被拒绝”。
答案 0 :(得分:2)
确保从访问的资源向同一域发送ajax请求。
在此处获取您的代码示例
xhttp.open("GET",filepath,false);
xhttp.send();
您已使用HTTP方法GET请求了资源。只有在根据规范[1]在XHR对象上调用send()方法时才会触发此请求。如果方法是GET,则忽略send()的参数。
现在一旦创建了xhr对象,它就会经历不同的状态[2],例如
请求被触发的那一刻(即调用send()),xhr对象的状态为OPENED。
现在,如果我们查看代码的第3行“xmlDoc = xhttp.responseXML;”,则很难确定您尝试阅读内容的状态。读取内容的最佳方式是状态达到4或DONE
只需修改您的代码,如下所示:
var xhr = new XMLHttpRequest();
xhr.open("GET", somefilepath, true);
xhr.send();
xhr.onreadystatechange = function() {
if(this.readyState == 4) {
xmlDoc=xhr.responseXML;
}
}