我想创建一个定期(例如每0.5秒)使用GET方法向服务器发送HTTP请求而不使用“form”标记的“Submit”输入的HTML页面。有可能吗?我能怎么做?
答案 0 :(得分:0)
使用setTimeout()
,setInterval()
和$.ajax()
var getRequest = function () {
$.ajax({
url: '/some_url',
method: 'GET',
data: {
// some data
},
success: function (data) {
setTimeout(getRequest, 500);
}
});
};
答案 1 :(得分: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>
其中&#34; #input&#34;是一个SSI命令。 另一个问题是HTTP请求的频率。如果它大于500毫秒则没有问题,否则,服务器会出现时间错误。
答案 2 :(得分: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请求已正确发送和接收,但不是循环播放。