定期HTTP GET请求,而不使用“提交”输入

问题描述 投票:0回答:3

我想创建一个定期(例如每0.5秒)使用GET方法向服务器发送HTTP请求的HTML页面,而不使用“form”标记的“Submit”输入。有可能吗?我能怎么做?

http get request
3个回答
0
投票

使用setTimeout()setInterval()$.ajax()

var getRequest = function () {
    $.ajax({
        url: '/some_url',
        method: 'GET',
        data: {
            // some data
        },
        success: function (data) {
            setTimeout(getRequest, 500);
        }
    });
};

0
投票

我试过这个shtml代码

<html>
  <head>
    <title>Transmit-Receive Demo</title>
    <script type="text/javascript">
      function request_transmit()
        {
          var xhr = new XMLHttpRequest();
          xhr.open('GET', "http://172.23.159.1/input.cgi?input=on&submit=Submit", true);
          xhr.send();
        }
      function my_timer()
        {
          setInterval(request_transmit, 500);
        }
    </script>
  </head>
  <body onload="my_timer();">
    <p>
      Received string:  <!--#input-->
    </p>
  </body>
</html>

请求已正确发送到服务器,但我无法在shtml页面中显示答案。答案由以下块处理:

<p>
  Received string:  <!--#input-->
</p>

其中“#input”是SSI命令。另一个问题是HTTP请求的频率。如果大于500毫秒则没有问题,否则服务器会出现时间错误。


0
投票

我试过这段代码

<html>
  <head>
    <title>Transmit-Receive Demo</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
      var getRequest = function() {
      $.ajax({
          url: 'http://172.23.159.1/input.cgi?',
          method: 'GET',
          data: {input=on&submit=Submit},
          success: function(data){setTimeout(getRequest, 500);}
      });
    </script>
  </head>
  <body onload="function();">
    <p>
      Received string:  <!--#input-->
    </p>
  </body>
</html>

HTTP请求已正确发送和接收,但不是循环。

© www.soinside.com 2019 - 2024. All rights reserved.