首页 > 解决方案 > 为什么 XMLHttpRequest 在 Edge 上不起作用?

问题描述

我正在尝试使用 HTML、PHP 和 JavaScript 做一个应用程序,我有这个功能可以在 Chrome 上正常工作,但不能在 Edge 上工作。有人能帮助我吗?提前致谢

function GetArduinoInputs(ip, sinc)
{
    nocache = "&nocache=" + Math.random() * 1000000;
    var request = new XMLHttpRequest();
    var dataReq = [0, 0, 0];
    request.onreadystatechange = function()
    {
        if (this.readyState == 4) {
            if (this.status == 200) {
                if (this.responseXML != null && sinc == true) {
                    // extract XML data from XML file
                    document.getElementById("input1").innerHTML =
                        this.responseXML.getElementsByTagName('freeChlorine')[0].childNodes[0].nodeValue;
                    document.getElementById("input2").innerHTML =
                        this.responseXML.getElementsByTagName('pH')[0].childNodes[0].nodeValue;
                    document.getElementById("input3").innerHTML =
                        this.responseXML.getElementsByTagName('temperature')[0].childNodes[0].nodeValue;
                    document.getElementById("input4").innerHTML =
                        this.responseXML.getElementsByTagName('poolName')[0].childNodes[0].nodeValue;
                    document.getElementById("input4").style.color = "blue";                            
                }
                if (this.responseXML != null && sinc == false) {
                    dataReq[0] = this.responseXML.getElementsByTagName('freeChlorine')[0].childNodes[0].nodeValue;
                    dataReq[1] = this.responseXML.getElementsByTagName('pH')[0].childNodes[0].nodeValue;
                    dataReq[2] = this.responseXML.getElementsByTagName('temperature')[0].childNodes[0].nodeValue; 
                }                           

            } else {
                document.getElementById("input1").innerHTML = "...";                            
                document.getElementById("input2").innerHTML = "...";                            
                document.getElementById("input3").innerHTML = "...";                                                  
                document.getElementById("input4").innerHTML = "Erro de ligação"; 
                document.getElementById("input4").style.color = "red";                           
            }
        }
    }
    request.open("GET", ip + nocache, sinc);
    request.send(null);
    request.onerror = err => alert('Error:' + err.message);
    setTimeout(function(){ GetArduinoInputs(ip, sinc); }, 1000);
    return dataReq;
}

标签: xmlhttprequest

解决方案


它适用于这个版本:Versão 81.0.416.68


推荐阅读