我正在开发一个基于服务器的网站。一个是免费主机,另一个是树莓派。当你在免费主机上访问一个网页时,你会得到一个输入链接的表单。链接被发送到树莓派,树莓派永久运行一个脚本,下载收到的链接的一些内容,并保存一个大的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();
});