AJAX等待,直到文件在另一个服务器上存在


AJAX wait until file exist on another server

我正在开发一个基于服务器的网站。一个是免费主机,另一个是树莓派。当你在免费主机上访问一个网页时,你会得到一个输入链接的表单。链接被发送到树莓派,树莓派永久运行一个脚本,下载收到的链接的一些内容,并保存一个大的txt文件。该脚本需要一点加载(30秒左右),所以我想创建一个Javascript脚本在主页(免费主机一个,与表单),其中显示一个加载图标,并检查在树莓下载文件夹,直到文件存在。

我认为AJAX将是最好的。工作流程是:

user访问form.php并输入一个链接表单直接发送给RPiRPi开始下载内容,并使用get参数id=将用户返回到referer页面这里ajax代码开始工作检查到一个url如果。txt存在如果它存在,它显示下载链接否则,它等待检查,直到它得到一个200状态码(这是我需要的)

我知道javascript和不同服务器的问题所以我创建了一个名为check.php的php脚本在相同的服务器和form。php文件夹中它以id为参数并返回200或404所以ajax代码只需要得到答案并连续执行

我该怎么做?我是AJAX新手,只懂一点Javascript。你能帮我弄一下AJAX代码吗?

我的form.php

?id =页面:

<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>downloader</title>
</head>
<body>
	<div id="content">
	<? 
	if (!$_GET){ 
	?> 
		<form action="<<rpi server>>" method="post">
			URL: <input type="text" name="link">
			<input type="submit" value="Download">
		</form>
	<? 
	}else{
		?>
		<script>
		$.ajax({
    type: 'POST',
    url: '/check.php',
    data: {'id':'<? echo $_GET['id']; ?>'},
    //check if response is 200 or 404, if it's 404 keep checking every second, else show mesage
    }
 });
        </script>
        <?
	}
	?>
	</div>
	
</body>
</html>

使用

function checkFile()
{
    $.ajax({
        type: 'POST',
        url: '/check.php',
        data: {'id':'999'},
        error : function(){
            setTimeout(function(){ checkFile(); }, 3000);
        },
        success : function(data) {
            //do whatever you want
        }
    });
}
$(function() {
    checkFile();
});
相关文章: