gpt4 book ai didi

javascript - 无法使用 javascript 解析 xml DOM(从文件)

转载 作者:行者123 更新时间:2023-12-02 20:12:22 24 4
gpt4 key购买 nike

最近,当我尝试将元素标记从单独的 xml 文件加载到 html 文档中时,我开始遇到 javascript 问题。我知道我已正确启用 XMLHttpRequest 或 activeX(取决于互联网浏览器),但我在获取 xml 文件并打开它以访问其标签时遇到问题。为了打开该文件,我尝试使用:

xhttp.open("GET",filepath,false);
xhttp.send();
xmlDoc=xhttp.responseXML;

代码似乎成功通过了第一行,但在第二行时就出错了。我想知道是否有人能够澄清 .send() 的功能,以及服务器权限是否可能有问题; IE 7/8 当这段代码运行时它告诉我“访问被拒绝”。

最佳答案

确保 ajax 请求从被访问的资源发送到同一域。

在此处获取代码示例,

xhttp.open("GET",filepath,false);
xhttp.send();

您已使用 HTTP 方法 GET 请求资源。仅当根据规范[ 1 在 XHR 对象上调用 send() 方法时,才会触发此请求。 ]。如果方法是 GET,则 send() 的参数将被忽略。

现在,一旦创建了 xhr 对象,它就会经历不同的状态[ 2 ]例如

  • 未发送(数值 0)
  • 已打开(数值 1)
  • HEADERS_RECEIVED(数值 2)
  • 正在加载(数值 3)
  • 完成(数值 4)

当请求被触发(即调用 send())时,xhr 对象将处于 OPENED 状态。

现在,如果我们查看代码的第三行“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;
}
}

关于javascript - 无法使用 javascript 解析 xml DOM(从文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com