javascript - 从外部 URL 下载 XML 响应

标签 javascript

抱歉,如果这是基本的,我是一名 C++ 开发人员,负责创建一个网页...

我们使用相机,我尝试从相机下载响应以了解它具有哪些功能。然后我尝试提取这些功能,并将我的 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() ,但我从未达到 if (parseXML())在readyState里面。我如何调试这里发生的事情?

我用来测试的 HTML 是本地文件,因此它是从硬盘驱动器运行的(如果这有什么区别的话)。

最佳答案

调试这里发生的事情:

  1. 打开火狐浏览器
  2. 单击滚动条右上角的三个垂直点。
  3. 点击“更多工具”->“开发者工具”
  4. 点击“来源”
  5. 在出现问题的 JavaScript 中放置一个断点。
  6. 从这里调试。

此外,您还可以研究一下 JavaScript Promise。它们很丑陋,但它们是您正在寻找的更强大的解决方案。如果文件足够大并且您尝试处理它,则您尝试获得的即时执行将不会发生。关于 promise 的文章在这里:

https://developers.google.com/web/fundamentals/primers/promises

关于javascript - 从外部 URL 下载 XML 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937538/

相关文章:

javascript - 指定内联事件处理程序是否会调用 eval()?

Javascript 和 JSP 未重新加载

javascript - Angular 下载大块

javascript - 如何以编程方式禁用 chrome 开发人员工具中的 javascript?

javascript - 从 Angular 中移除 hashchange 事件,或者阻止 Angular 重写 anchor 链接

javascript - 有没有办法控制线性调用顺序中的 promise 流?

javascript - 使用jest+enzyme测试,mock函数无故调用两次

javascript - keyup(function()) ajax 请求延迟 - jQuery

javascript - CKEditor文本编辑区的背景色如何根据文字颜色改变?

javascript - Bootstrap-Tour 独立版无法工作