JQuery Ajax Асинхронное перенаправление

Я сталкиваюсь со странной проблемой при перенаправлении после асинхронный AJAX POST запрос. Я хочу отправить асинхронный POST-запрос (выгрузка файла) на сервер, и пока я не дождусь его завершения, так как это занимает некоторое время, я хочу перенаправить на другой маршрут и там я могу наблюдать за состоянием загрузки. Моя проблема в том, что даже если я утверждаю, что запрос асинхронной сначала он ожидает завершения этого запроса, синхронно и затем перенаправляет меня.
Я что-то упустил случайно?

upload.save = function (data) {
var self = this,
result = self.uploadType.getSummaryData();

$.ajax({
method: 'POST',
url: Routing.generate('save'),
data: JSON.stringify({
//My data
}),
cache: false,
contentType : 'application/json',
dataType: 'json',
context: self
});

// Redirection
setTimeout(function () {
window.location.replace(Routing.generate('log'));
}, 3000);
};

Я использую Symfony 3.4 и JQuery версии 2.1 и для перенаправления я использую FOS JS Routing Bundle v ~ 1.4

0

Решение

Таким образом, проблема, кажется, на стороне сервера. Похоже, PHP необходимо завершить текущий сеанс и сохранить данные сеанса с session_write_close () так что каждый запрос ajax не должен ждать следующего, если асинхронной является правда.

Так что это необходимо для разрешения одновременного запроса со стороны клиента

0

Другие решения

Когда для асинхронного параметра установлено значение false, вместо асинхронного вызова выполняется синхронный вызов.

 $.ajax({
method: 'POST',
url: Routing.generate('save'),
data: JSON.stringify({
//My data
}),
cache: false,
contentType : 'application/json',
dataType: 'json',
context: self,
async: false
});

Если для параметра async установлено значение true, вместо синхронного вызова выполняется асинхронный вызов.

-1

По вопросам рекламы [email protected]