WhatIsHTML
@WhatIsHTML
HTML программист

Будет ли обрываться запрос, если произошел редирект на другую страницу?

Есть два запроса отправляемых с фронтенда.
Запрос№1 идет на наш сервер, обрабатывается и отправляется на сторонний сервер. Ответ от этого запроса на фронтенде мы не ждем.
Запрос№2 идет на наш сервер, обрабатывается, отправляем ответ на фронтенд, затем редирект на другую страницу.

Оба запроса асинхронные. Будет ли обрываться Запрос№1, если редирект произошел быстрее чем успел отправиться запрос от нашего сервера на сторонний сервер?
Фронтенд:
request1();
request2();

function request1() {
$.ajaxSetup({
   headers: { 'X-CSRF-Token' : '{!! csrf_token() !!}' }
});
$.ajax({
    type: "POST",
    url: "{{ url() }}/url-1",
    data: data,
    dataType: 'json',
    error: function (data) {
      console.log(data)
    },
    success: function (data) {
        // do nothing
        console.log(data)
    }
}); // End AJAX
}

function request2() {
$.ajaxSetup({
   headers: { 'X-CSRF-Token' : '{!! csrf_token() !!}' }
});
$.ajax({
    type: "POST",
    url: "{{ url() }}/url-2",
    data: data,
    dataType: 'json',
    error: function (data) {
      console.log(data)
    },
    success: function (data) {
        // redirect
        window.location.href = newUrl;
    }
}); // End AJAX
}


Бекенд отправка запроса на сторонний сервер после request1() с фронтенда
{
      $listID = 2;
      $segment = parse_url($request->headers->get('referer'))["path"];

      if ($segment == '/some-url') {
        $listID = 8;
      }

      $client = new Client();
      $res = $client->request('POST', 'XXX', [
            'form_params' => [
                'api_key' => 'XXX',
                'actid' => 'XXX',
                'api_action' => 'XXX',
                'api_output' => 'json',
                'p[listID]' => $listID,
            ]
      ]);

      echo $res->getBody();
    }
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
xpert13
@xpert13
Full Stack Developer
Будет ли обрываться Запрос№1, если редирект произошел быстрее чем успел отправиться запрос от нашего сервера на сторонний сервер?

Не будет. Если запрос долетел до вашего сервера и он начал его обрабатывать - то он закончит начатое, даже если ответа уже никто не ждёт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы