繁体   English   中英

服务器未使用get方法响应xmlHTTP请求

[英]Server doesn't respond to an xmlHTTP request using the get method

我正在与arduino进行一个项目,在该项目中,我使用XMLHttprequest和从网页中获取方法将不同的请求发送到服务器(arduino板)。 除了其中一个请求,其他请求仅用于向服务器发送订单,因此我不希望XML响应。 另一个是每隔5秒发送一次的请求,用于从服务器获取不同的值。

最后一个问题来了。 实际上,该网页每5秒钟发送一次请求(因为我在浏览器控制台和arduino串行监视器上看到了该请求),但是它什么也没收到,只是答案的头确认了响应,但与XML文件无关。 出乎意料的是,当我在浏览器中使用get方法编写普通请求时,我立即获得了带有值的XML文件,而且我一直这样做。

我要写我在网页上使用的javascript代码

setInterval(function tiempo()
{
    var request = new XMLHttpRequest();
    request.onreadystatechange = function()
    {
        if (this.readyState == 4) {
            if (this.status == 200) {
                if (this.responseXML != null) {
//                  extract XML data from XML file (containing switch states and analog value)
                    document.getElementById("input1").innerHTML = this.responseXML.getElementsByTagName('dato')[0].childNodes[0].nodeValue;
                    document.getElementById("input2").innerHTML = this.responseXML.getElementsByTagName('dato')[1].childNodes[0].nodeValue;
                    document.getElementById("input3").innerHTML = this.responseXML.getElementsByTagName('dato')[2].childNodes[0].nodeValue;
                    document.getElementById("input4").innerHTML = this.responseXML.getElementsByTagName('dato')[3].childNodes[0].nodeValue;
                    document.getElementById("input5").innerHTML = this.responseXML.getElementsByTagName('dato')[4].childNodes[0].nodeValue;
                    document.getElementById("input6").innerHTML = this.responseXML.getElementsByTagName('dato')[5].childNodes[0].nodeValue;
                    document.getElementById("input7").innerHTML = this.responseXML.getElementsByTagName('dato')[6].childNodes[0].nodeValue;
                }
            }
        }
    }
    request.open("GET", "URL" + Math.random(), true);
    request.send(null);
}
, 5000);

另一方面,如果仅在浏览器URL编写,则可以毫无问题地获取XML。

我要说的一件事是,现在我正在使用存储在计算机中的网页,但是在使用存储在arduino(SD卡中)并通过arduino通过互联网加载的网页之前。 在这种情况下,相同的代码可以完美地工作。 我改变的原因是因为arduino以太网不太快,并且花费了很多时间。 随着网页存储在我的计算机中,它运行得更快,因为它只需要发送订单即可。

谢谢!!

最后,我找出了问题所在。 它是浏览器。 出于任何原因,只有Internet Explorer才能正确处理该网页。 firefox和其他Web浏览器都未获取xml文件。 我不知道原因,但我想找到它。

如果有人知道有关我的信息,我将很乐意尝试解决问题。

谢谢!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM