2017-01-30 3 views
0

Возможно ли в JS/php отправить запрос на определенный URL-адрес, а затем ждать ответов с этого URL-адреса?Отправить запрос и дождаться ответа

Я не знаю, как лучше объяснить этот вопрос, но то, что я пытаюсь сделать, это отправить запрос на страницу, на которой есть очередь, и я хочу, чтобы запрос «подождал» "на этой странице и отправьте мне ответ, как только он окажется в очереди.

+1

Так что вы пробовали? и с какими проблемами вы столкнулись с вашим решением. –

+0

Я даже не знаю, как это сделать. Я думал, что это возможно сделать с помощью jquery, но я не знаю, как заставить его оставаться на странице запроса. – Serwj

+0

Взгляните на [PHP - Curl] (http://php.net/manual/en/book.curl.php) – Peter

ответ

0

Вы можете сделать это с помощью AngularJS (javascript), например.

С $ HTTP Услугу вы делаете:

$http.get('your_url').success(function(){ 
// Your code if there is a good response at your request 
}).error(function(){ 
// Your code if you detected an error (page not found etc...) 
}) 

официальной документации AngularJS: $http Service

Надежда, что это поможет :)

0

с Jquery вы можете сделать запрос Ajax к любой другой стороне сервера, следующим образом.

$.ajax({ 
    method: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}) 
    .done(function(msg) { 
    alert("Data Saved: " + msg); 
    }); 

С PHP вы, чтобы сделать CURL вызов соответствующего серверного файла

0

Нет, это не возможно.

Если вы хорошо понимаете, вы отправляете запрос на бэкэнд и хотите дождаться ответа, пока процесс очереди не будет завершен. Процесс может (не должен) длиться так долго, как 5 минут. И вот в этом проблема, ваш запрос на бэкэнд будет закрыт через некоторое время для таймаутом причинам.

Правильный путь должен быть,

  1. вы посылаете запрос на ваш бэкэнд и получить ответ успеха при успешных очередях запроса или отказе от проблем, стоящих в очереди запроса.
  2. Через некоторое время вы можете отправить второй запрос на бэкэнд для получения, если процесс был выполнен. Этот запрос может быть отправлен несколько раз, пока не будет обработан весь запрос, поставленный в очередь пользователя.

Другим возможным решением будет использование socket.io.

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