AJAX等到另一台服务器上存在文件

时间:2015-05-16 09:29:08

标签: javascript php jquery html ajax

我正在开发一个基于服务器的网站。一个是免费主机,另一个是Raspberry Pi。当您访问免费主机中的网页时,您会看到一个输入链接的表单。该链接将发送到Raspberry Pi,它将永久运行一个脚本,该脚本会下载收到的链接的某些内容并保存一个大的txt文件。该脚本需要加载(30秒aprox),所以我想在主页面(免费主机1,带有表单)中创建一个Javascript脚本,它显示一个加载图标并检查raspberry下载文件夹,直到该文件存在。

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

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

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

我该怎么办?我是AJAX的新手,我只知道一点Javascript。你能用AJAX代码帮助我吗?

我的form.php?id = page:

<!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>

1 个答案:

答案 0 :(得分:2)

使用此

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();
});