Codeception onbeforeunload ajax запрос вызывает тайм-аут

#javascript #ajax #timeout #phantomjs #codeception

#javascript #ajax #тайм-аут #phantomjs #codeception

Вопрос:

У меня есть проблема, которую можно решить только с window.onbeforeunload помощью события, использующего ajax-запрос:

 window.onbeforeunload = function (event) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST', 'SOME_URL', false);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send('some=data');
};
  

Он работает в браузере хорошо, но он не работает с Codeception Webdriver с использованием phantomjs. Я получаю:

[Facebook WebDriver Exception WebDriverCurlException] Ошибка Curl, вызванная для http POST в /session/xxxyyyzzz/url с параметрами: {«url»:»http://myhost.pl/someuri «}

Время ожидания операции истекло через 120001 миллисекунду с получением 0 байтов

Я уже увеличил тайм-аут до 120 секунд (с 30).

Он работает, когда я выполняю синхронизацию запросов, но не выполняется с асинхронными запросами.

Похоже, что браузер phantomjs убивает этот запрос при выходе с текущей страницы, и этот запрос блокирует все остальные.

Кто-нибудь сталкивался с такой проблемой и есть какие-либо идеи / решения?

Комментарии:

1. github.com/ariya/phantomjs/issues/14396

2. ДА. Это именно та проблема, с которой я сталкиваюсь. К сожалению, это все еще не решено. Спасибо!