Unchecked runtime lasterror could not establish connection receiving end does not exist что это

Обновлено: 06.07.2024

Я разрабатываю расширение в Chrome, и тут возникла проблема. В моем inject.js я делаю запрос типа:

и в моем `background.js я просто добавляю слушатель запроса, например:

Но тут есть ошибка:

Ошибка порта: не удалось установить соединение. Приемный конец не существует

Кажется, это ошибка в chrome? PS:
часть моего manifest.json

Я нахожусь в Chromium 17, и я попытался перезагрузить расширение, снова открыть браузер. ничего не произошло , у кого-то
есть какие-то идеи?

Я знаю, что этот вопрос неоднократно задавался по-разному, но я попытался пройти через все ответы (надеюсь, я никого не пропустил), и ни один из них не сработал для меня. Вот код моего расширения: манифест : < name: test, version: 1.1, background: < scripts: [contextMenus.js] >, permissions.

Это не всегда является причиной, но если у вас есть ошибка в background.js , вы должны проверить эту ссылку:

на странице Расширений, которая покажет вам любые ошибки JavaScript.

Это мешало моим связям установиться.

Проблема может заключаться в том, что sendRequest() и onRequest устарели и заменены на sendMessage() и onMessage . После недавнего обновления Chrome 20 они, похоже, полностью исчезли.

Я обнаружил, что у меня та же проблема, которую вы описываете здесь. Решение, которое я нашел, которое работает для меня, - это использовать фоновую страницу вместо фонового сценария, например:

Я надеюсь, что это сработает и для вас.

Поскольку мы установили его как var , другой скрипт теперь может напрямую получить доступ к этому значению

В основном я пытаюсь выполнить код, найденный в документации расширения Chrome. И вот тут-то я и застрял. Я пытаюсь передать значения из content script > > background page (для XHR). И ошибка, которую я получаю в консоли, такова : Ошибка порта: не удалось установить соединение. Принимающий конец.

Фоновая страница HTML не работала для меня в Chrome 20.0.1132.57 m на Windows 7 с той же ошибкой:

Я попытался использовать скрипт background.js со следующим содержимым:

Это решило проблему onDisconnect в моем сценарии контента:

Пример также содержит вторую часть , которая служит бэкэндом для sendRequest , но я не тестировал ее сам:

Столкнувшись с той же проблемой сейчас.

//Here-это мой бывший background.js :

Теперь это хорошо работает. Надеюсь быть полезным.

эти страницы не позволяют вводить скрипты содержимого, и соединение немедленно отключится .

итак, проверьте url и не подключайте эти вкладки ,тогда исключение не будет выдано

После некоторого времени, потраченного на расследование, я обнаружил проблему в своем случае.

Я также получаю:

Прежде чем объяснить, я хочу сказать, что я использую sendMessage и onMessage для общения.

Кажется, это вполне нормально.

Если я обновлю youtube вкладок после перезагрузки расширения, я не получу этой ошибки.

Я нашел одно решение, оно может применяться не ко всем случаям:

Когда у меня возникла эта проблема, мой код был:

Для моего я не нуждался в обратном вызове ответа, и из-за того, что он не отвечал, у меня была эта ошибка.

Закройте вкладки, оставьте только одну страницу и проверьте. В моем случае это было проблемой.

Для манифеста 2.0 и sendMessage случай его довольно прямолинейный:

Это происходит, если вы пытаетесь использовать sendMessage внутри всплывающего окна, а в конце фонового скрипта нет настройки прослушивателя или прослушиватель каким-то образом был удален.

2. Надеюсь, это поможет.

Если у вас возникла проблема, в основном из-за того, что вы ссылаетесь на устаревший документ, обновите его!

Проблема оказалась в том, что у меня был открыт инспектор фоновых сценариев и я просто нажимал Cmd+R (обновить), но в моем manifest.json была ошибка . Когда я на самом деле зашел на страницу расширений и перезагрузил эту страницу, я получил предупреждение, показывающее явную ошибку.

В принципе, я видел это, потому что мои сценарии контента никогда не загружались в первую очередь, и я думал, что обновляю свой манифест, но это не так.

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

При попытке установить связь между моим содержимым и фоновым сценарием я получаю следующие ошибки: Port error: Could not establish connection. Receiving end does not exist. Error in event handler.

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

В основном я пытаюсь выполнить код, найденный в документации расширения Chrome. И вот тут-то я и застрял. Я пытаюсь передать значения из content script > > background page (для XHR). И ошибка.

Я пытаюсь создать очень простое расширение Chrome, которое позволит мне выделить слово на веб-странице, щелкнуть правой кнопкой мыши, чтобы открыть контекстное меню, а затем выполнить поиск в базе.

Я недавно удалил и переустановил Postgres10. Затем я запустил приложение Node/Express/React, которое полагается на соединение с базой данных Postgres (и связь с ней с помощью Sequelize).

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

Однако теперь у меня появляется следующая ошибка в консоли Chrome Dev Tools при каждой загрузке страницы приложения:

Не проверено runtime.lastError: Не удалось установить соединение. Получающий конец не существует

ОТВЕТЫ

Ответ 1

Я получал точно такую же ошибку (за исключением того, что у моего приложения нет бэкэнда и React-интерфейса), и я обнаружил, что это происходит не из моего приложения, а из-за Chrome "Video Speed Controller" расширение. Если вы не используете это расширение, попробуйте отключить все свои расширения и затем включить их снова по одному?

Ответ 2

Ошибка часто вызвана расширением Chrome. Попробуйте отключить все ваши расширения, проблема должна исчезнуть.

Ответ 3

Решение

У вас есть окно, открытое с ошибкой консоли, откройте второе новое окно.

Во втором окне перейдите по адресу: chrome://extensions

Отключите каждое расширение с помощью переключения (синий ползунок в правом нижнем углу каждой карты) и обновите окно с консолью после переключения каждого расширения.

Если у вас нет ошибки, удалите расширение.

Ответ 4

Удаление хромового расширения "Udacity Frontend Feedback" решило эту проблему для меня.

Ответ 5

Ответ 6

Отключение расширения решило проблему.

Ответ 7

Для меня ошибка была связана с расширением onelogin chrome. Удаление это решило проблему.

Ответ 8

Расширение Cacher в моем случае - но да, отключите каждый, а затем перезагрузите страницу

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

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

MirekH

Я отключил все установленные расширения в Chrome-works for me. Теперь у меня есть четкая консоль без ошибок.

Aguayma

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

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

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

Jonathan Lin

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

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

UPDATE : я исправил проблему CORs, но я все еще вижу эту ошибку. Я подозреваю, что здесь виноват хром.

nokieng

Я уже ответил на этот вопрос .

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

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

Rajeet

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

Ofek Shilon

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

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

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

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

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

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

Захожу в тему через firefox 58.0.2 (64-бит) - код не подсвечивается. Оставляю коммент, страничка обновляется - весь код с подсветкой. Исправлений в постах не вижу, в чем дело?



Открой сонсоль браузера (Ctrl+Shift+J) и повтори свои действия, желательно, чтобы кроме ЛОРа ничего больше не было открыто. Возможно, увидишь какую ругань в логах.


Unchecked lastError value: Error: Could not establish connection. Receiving end does not exist.
withLastError resource://gre/modules/ExtensionCommon.jsm:407:9
wrapPromise/< resource://gre/modules/ExtensionCommon.jsm:460:11

Но проблема на вид не повторяется. Точнее при загрузке сначала выделения цветом нет, но спустя пол секунды появляется. Будем считать что страница не прогрузилась до конца. Будет повторение - буду смотреть консоль.

peregrine ★★★★★ ( 13.03.18 23:57:22 )
Последнее исправление: peregrine 13.03.18 23:57:56 (всего исправлений: 2)


Сегодня вышел Firefox 59, в нём попробуй.


очнее при загрузке сначала выделения цветом нет, но спустя пол секунды появляется.

Аналогично, 59 версия, ванильная сборка от мозиллы.


в opera примерно тоже самое - моргает, а если открыть в фоне и переключиться на вкладку, то код не цветной до перезагрузки страницы

Если как было, то просто отзовите у браузера разрешение исполнять код с ЛОРа.


Куды вышел? из жопы? у меня уже 60.


Ну и на хрена, если в девтулзах давно есть пер-сайтная сосноль? Ты из какого века на паровозике приехал?


Зачем ему лезть в devtools? Один шоткат, и все дела. Красноглазым мудакам, конечно, не понять заботу об удобстве обычных юзеров.


Молодец. Возьми с полки пирожок.


А девтулзы шорткатом не открываются, что ли, по-твоему?!


Тебе что надо? Я предложил ТС рецепт для получения отладочной информации при воспроизведении его бага. С этой инфой он уже может лезть в гуголь и искать ответы. Инфу он получил: А что за глюки? (комментарий). Через 2 дня появляешься ты и ведешь себя, словно ужаленный в задницу.

Через 2 дня появляешься ты и ведешь себя, словно ужаленный в задницу.

Информация о пользователе Virtuos86

Дата регистрации: 07.10.2011 12:31:42

И всё ещё не привык?


А я предложил лучше, ибо от твоего рецепта уже мертвечиной попахивает. Не исключено, что эту консоль вообще скоро выкинут из лисы. Придёт кто-то в тред из поисковика, а тут деза и ретроградство.


Пуристы не нужны.

Не исключено, что эту консоль вообще скоро выкинут из лисы.

Читайте также: