Как устранить проблему с хромом 'Unchecked runtime.lastError: Порт сообщения закрыт до получения ответа'? - PullRequest
0 голосов
/ 10 января 2019

Я использую VueJS и Laravel для своего проекта. Эта проблема начала появляться в последнее время, и это видно даже в старых ветках Git.

Эта ошибка отображается только в браузере Chrome.

Ответы [ 9 ]

0 голосов
/ 23 июля 2019

В моем случае это была точка останова, установленная в моем собственном источнике страницы. Если я удалю или отключу точку останова, то ошибка исчезнет.

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

0 голосов
/ 25 июля 2019

Если причиной ошибки является расширение, используйте инкогнито Ctrl + Shift + N . В режиме инкогнито Chrome не имеет расширений.

0 голосов
/ 06 июня 2019

В случае, если вы разработчик расширений и попытались прекратить поиск этой ошибки, вы попытались перестать вызывать эту ошибку:

Проблема не в CORB, поскольку заблокированные COR проявляются в виде предупреждений например -

Блокировка перекрестного происхождения (CORB) заблокировала ответ перекрестного происхождения https://www.example.com/example.html с текстом MIME / html. Увидеть https://www.chromestatus.com/feature/5629709824032768 для более подробности.

Скорее всего, проблема заключается в неправильном асинхронном ответе на runtime.sendMessage. Как MDN говорит :

Чтобы отправить асинхронный ответ, есть две опции:

  • вернуть true из прослушивателя событий. Это сохраняет sendResponse функция действительна после возврата слушателя, поэтому вы можете вызвать ее позже.
  • вернуть Promise от слушателя события и решить когда у вас есть ответ (или отклонить его в случае ошибки).

Когда вы отправляете асинхронный ответ, но не используете ни один из этих механизмов, предоставленный sendResponse аргумент sendMessage выходит за пределы области, и результат в точности соответствует сообщению об ошибке: ваш порт сообщения (сообщение- передающий аппарат) закрывается до получения ответа.

Авторы Webextension-polyfill уже написали об этом в июне 2018 .

Итак, если вы видите, что ваше расширение вызывает эти ошибки - внимательно осмотрите всех слушателей onMessage. Некоторые из них, вероятно, должны начать возвращать обещания (достаточно пометить их как асинхронные).

0 голосов
/ 10 июля 2019

Для меня это был Auto Tab Discard, который выбрасывает эту ошибку на закрепленные вкладки. Я создал отчет об ошибке, https://github.com/rNeomy/auto-tab-discard/issues/101.

0 голосов
/ 15 мая 2019

Отключить, если в браузере установлено какое-либо антивирусное расширение. В моем случае виновным было расширение антивируса.

0 голосов
/ 22 марта 2019

Я ответил на это .

В моем случае проблема была из-за Video Downloader professional и AdBlock

Короче говоря, эта проблема возникает из-за некоторых плагинов Google Chrome

0 голосов
/ 17 марта 2019

Для тех, кто приходит сюда для отладки этой ошибки в Chrome 73, одна возможность состоит в том, что Chrome 73 и далее запрещает перекрестные запросы в сценариях содержимого.

Больше чтения:

  1. https://www.chromestatus.com/feature/5629709824032768
  2. https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

Это затрагивает многих авторов расширений Chrome, которым теперь нужно карабкаться, чтобы исправить расширения, потому что Chrome считает: «Наши данные показывают, что большинство расширений не будут затронуты этим изменением».

(это не имеет ничего общего с кодом вашего приложения)

ОБНОВЛЕНИЕ : Я исправил проблему с CORs, но все еще вижу эту ошибку. Я подозреваю, что это вина Хрома.

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

Если вы перейдете на chrome: // extensions / , вы можете просто переключать каждое расширение по одному и видеть, какое из них действительно вызывает проблему.

Как только вы отключите расширение, обновите страницу, на которой вы видите ошибку, и покачивайте мышью или нажмите. Действия мыши - это то, что вызывает ошибки.

Итак, я смог определить, какое расширение на самом деле вызывало проблему, и отключить его.

0 голосов
/ 10 февраля 2019

Я отключил все установленные расширения в Chrome - у меня работает. У меня сейчас консоль без ошибок.

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