Javascript 从外部URL下载XML响应 对不起,如果这是基本的,我是C++开发人员,负责创建网页…< /P>

Javascript 从外部URL下载XML响应 对不起,如果这是基本的,我是C++开发人员,负责创建网页…< /P>,javascript,Javascript,我们使用摄像机,我尝试从摄像机下载一个响应,以了解它有什么功能。然后我尝试提取这些功能,并将div元素设置为可见或不可见 function readAlarmReactions() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200

我们使用摄像机,我尝试从摄像机下载一个响应,以了解它有什么功能。然后我尝试提取这些功能,并将div元素设置为可见或不可见

    function readAlarmReactions() 
    {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          if (parseXML(xhttp.responseXML, 'Beep') == 'false')
          {
            document.getElementById("Beep").style.display = "none";
          }
        }
      };
      xhttp.open("GET", "http://172.19.50.231/ISAPI/Event/triggersCap", true);
      xhttp.send();
    }

    function parseXML(xml, request) {
      var path = "/EventTriggersCap/isSupport" + request;
      if (xml.evaluate) {
        var nodes= xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
        var result = nodes.iterateNext();
        if (result) {
          return result.childNodes[0].nodeValue;
        }
        return 'false';
      }
      return 'false';
    }
当我运行这段代码时,我到达了
xhttp.open()
,但我从未到达readyState中的
if(parseXML())
。我如何调试这里发生的事情


我用来测试的HTML是一个本地文件,所以它是从硬盘上运行的,如果这有什么区别的话。

要调试这里发生的事情:

  • 打开Firefox
  • 单击滚动条右上角的三个垂直点
  • 单击“更多工具”->“开发人员工具”
  • 单击“来源”
  • 在JavaScript中存在问题的地方设置断点
  • 从这里调试 此外,您还可以查看JavaScript承诺。它们很难看,但它们是您所寻找的更强大的解决方案。如果一个文件足够大,并且您正试图处理它,那么您试图获得的即时执行就不会发生。关于承诺的文章如下:


    “我用来测试的HTML是一个本地文件,所以它是从硬盘上运行的,如果这有什么区别的话。”-是的,不要这样做。从与要通过
    XMLHttpRequest
    获取的文件位于同一域(!)的web服务器上运行HTML。此外,浏览器的控制台(F12)允许您查看XHR的运行情况,您现在应该可以看到错误。我请求的不是文件,而是服务器以XML格式生成的网站。这是否仅适用于同一域?运行脚本的HTML文件也不能是
    文件://
    请求。我是这样理解你最后一句话的。