Сбой синхронного запроса Ajax в Chrome - PullRequest
16 голосов
/ 14 апреля 2019

Последняя версия Chrome остановила синхронные вызовы Ajax? Мы получаем ошибку при выполнении синхронных вызовов Ajax. Проблема появилась после того, как мы обновили до последней версии Chrome - 73.0.3683.103. Синхронные вызовы отлично работают на Firefox и IE. Мы получаем ошибку ниже

сообщение: «Не удалось выполнить« send »для« XMLHttpRequest »: не удалось загрузить« Path ... »: синхронный XHR при удалении страницы». " имя: "NetworkError"

Может кто-нибудь предложить решение для обеспечения работы синхронных вызовов Ajax. У меня есть некоторые функциональные возможности, в которых мне обязательно нужно полагаться на синхронный вызов.

Ответы [ 2 ]

12 голосов
/ 14 апреля 2019

Да, в Chrome они недавно запретили синхронный ajax во время событий конца страницы (например, beforeunload и unload). Вы просто не можете больше этого делать в Chrome. Обновление: Вы можете снова, в v73 и v74, но это запланировано (на данный момент) снова уйти в v75, если не будет больше откат назад. Следите за забавой в этом выпуске (спасибо patmortech за нахождение этой проблемы) .

Современная альтернатива заключается в использовании sendBeacon, который позволяет браузеру перемещаться от страницы, в то же время давая вам возможность сообщить серверу, что происходит. Это не задерживает закрытие страницы. Но это только POST, и, поскольку он не задерживает удаление страниц, варианты использования, основанные на задержке удаления страниц, не будут работать с ним.

0 голосов
/ 15 апреля 2019

Спасибо вам обоим - Краудеру и Чарлиэтфлю. Использование Beacon решило проблему.

Если кто-то ищет решение, можете выполнить следующее - http://qnimate.com/sending-data-to-server-on-page-unload/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...