2015-05-16 7 views
1

Я разрабатываю веб-сайт, основанный на серверах. Один из них - бесплатный хозяин, а другой - малина Pi. Когда вы получаете доступ к веб-странице на свободном хосте, вы получаете форму, в которую вы вводите ссылку. Ссылка отправляется в Raspberry Pi, которая постоянно запускает скрипт, который загружает некоторое содержимое полученной ссылки и сохраняет большой файл txt. Сценарий требует немного загрузки (30 секунд aprox), поэтому я хочу создать сценарий Javascript на главной странице (бесплатный хост один с формой), где отображается значок загрузки и проверяется в папке загрузки малины до тех пор, пока файл не будет существовать.AJAX ждать, пока файл не будет существовать на другом сервере

Я думаю, что AJAX будет лучшим для этого. Последовательность действий: form.php доступа

пользователя и вводит ссылку формы отправки непосредственно на RPi ИРЦ начинает загружать вещи и возвращает пользователь на страницу refferrer с идентификатором параметра прибудет = здесь код ajax начинает работать проверки в URL-адрес, если .txt существует, если он существует, он показывает ссылку на скачивание еще, он ждет проверки, пока не получит код состояния 200 (Это то, что мне нужно)

Я знаю, проблема с javascript и разными серверами, поэтому я создал php-скрипт с именем check.php в том же сервере и папке form.php, который получает id в качестве параметра и возвращает 200 или 404, поэтому код ajax просто n чтобы получить ответ и действовать в соответствии с ним

Как это сделать? Я новичок в AJAX, я знаю только немного Javascript. Не могли бы вы помочь мне с кодом AJAX?

Мой form.php ID = страница:

<!DOCTYPE html> 
 
<html lang="es"> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>downloader</title> 
 
</head> 
 
<body> 
 
\t <div id="content"> 
 
\t <? 
 
\t if (!$_GET){ 
 
\t ?> 
 
\t \t <form action="<<rpi server>>" method="post"> 
 
\t \t \t URL: <input type="text" name="link"> 
 
\t \t \t <input type="submit" value="Download"> 
 
\t \t </form> 
 
\t <? 
 
\t }else{ 
 
\t \t ?> 
 
\t \t <script> 
 
\t \t $.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> 
 
     <? 
 
\t } 
 
\t ?> 
 

 
\t </div> 
 
\t 
 
</body> 
 
</html>

ответ

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

Спасибо большое, я просто должен был изменить файл check.php вернуться ошибка 404, если файл не существует. –

Смежные вопросы