我正在开发一个基于服务器的网站。一个是免费主机,另一个是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>
答案 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();
});