Как исправить проблему Chrome «Unchecked runtime.lastError: порт сообщения закрыт до получения ответа»?

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

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

У вас есть блокировщик рекламы?

Maelig 10.01.2019 11:36

Проверьте мой ответ на этот другой запрос: stackoverflow.com/questions/53919591/…

Dolfiz 10.01.2019 12:38

Спасибо, ребята, проблема была в расширении "Video Downloader professional".

Triumf Maqedonci 10.01.2019 15:05
Примечание модератора: Нам не нужны новые ответы со списком всех расширений, которые, как вы обнаружили, вызывают эту проблему. Достаточно одного ответа о том, что проблема может быть вызвана расширениями, и рекомендации отключить их. Ответы, которые ничего не делают, кроме названия расширения, были и будут удаляться.
Cody Gray 24.10.2021 08:40
stackoverflow.com/questions/59914490/…, возможно, ответ здесь более полезен, чем просто «отключить расширение x»
bongoSLAP 03.01.2022 01:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
316
5
431 233
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Ответ принят как подходящий

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

MeddleMonkey отключен

terantul 11.07.2019 15:07

У меня возникла эта проблема, вызванная расширением Norton Safe Search.

Boardy 26.07.2019 12:04

В моем случае расширением была Панель издателя Google.

Leandro Castro 23.08.2019 20:17

У меня в неработающем состоянии стояло расширение "Контроллер скорости видео". Починили, после чего ошибка исчезла.

Alielson Piffer 06.09.2019 18:08

Для меня это был «Norton Safe Web».

frankfurt-laravel 30.10.2019 20:38

Для меня это было расширение Kaspersky Protection. (можно подумать, что разработчики антивирусов будут немного осторожнее, чтобы в их программном обеспечении не было ошибок!)

Venryx 16.11.2019 22:00

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

Vince 15.12.2019 06:54

Для меня это было расширение Shortkeys (Custom Keyboard Shortcuts).

graceman9 15.12.2019 23:04

В моем случае это расширение "Какой шрифт"

TarasH 16.12.2019 16:30

Spreed - та же проблема

Barrie Reader 18.01.2020 10:09

Для меня это был «Анализатор цветового контраста».

Jeff Miller 23.01.2020 22:52

Для меня отключен просто "Adskill"

Valdemar 06.03.2020 13:20

Мне пришлось отключить "Сочетания клавиш поиска Google ™ - РЕЗУЛЬТАТ"

Toine H 06.04.2020 11:42

Это может быть вызвано отключением или переключением расширений, которые прослушивают взаимодействия браузера, например, WebRecorders, API Assistants (Amazon ..) и другие, которые постоянно ждут взаимодействия ...

Bruno Miyamotto Luque 01.05.2020 19:38

Расширение React-Sight было для меня виновником

redochka 10.06.2020 18:36

В моем случае это было стильно

Tahazzot 18.06.2020 14:57

В моем случае это был "Снимок экрана" от Google. В любом случае отличный инструмент!

krankuba 28.07.2020 10:19

Я отключил расширение Norton Safe Search Extension, и ошибка исчезла.

Xris 21.08.2020 20:04

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

Ariful Islam 30.08.2020 06:53

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

Frank 07.10.2020 11:47

Мое проблемное расширение Chrome: OurStickys - Sticky Notes на каждой странице

Orici 12.10.2020 12:02

Отключить "TamperMonkey" для меня

Ian Jamieson 14.10.2020 19:06

Для меня это был Хрюша

Nats 30.10.2020 13:53

отключить расширение "Wappalyzer" в Chrome для меня

Deniz 12.11.2020 07:45

В моем случае это было расширение AdGuard.

pa4080 12.11.2020 15:17

Wappalyzer для меня тоже.

Pavel Donchev 16.11.2020 14:18

Для меня это "MeddleMonkey"

Jadian 23.11.2020 02:24

Для меня "Августа"

Sebastian Denis 02.12.2020 10:16

Расширение Google Voice только начало это для меня сегодня.

sazerac 23.04.2021 20:43

Norton Safe Web для меня.

BlueStaggo 25.04.2021 12:09

... в моем случае это расширение "DuckDuckGo Privacy Essentials"

TYPO3UA 27.04.2021 10:54

Для меня StayFocusd

Alessandro_russo 23.06.2021 14:31

Пришлось отключить "Free VPN for Chrome - VPN Proxy VeePN"

Roshan 18.07.2021 06:01

Для меня это был «WhatFont - Find Font».

Armando Guarino 20.07.2021 09:04

Для меня это был «Валидатор HTML» (chrome.google.com/webstore/detail/html-validator/…)

Royce Williams 02.09.2021 07:06

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

Yvonne Aburrow 15.09.2021 15:10

Я сломал дамбу.

Andrew Berridge 23.09.2021 12:26

Для меня это был Dark Reader

Jakob Lindskog 27.09.2021 17:59

в моем случае это расширение "Free VPN for Chrome - VPN Proxy VeePN": D

Niccolò Biagi 08.10.2021 12:20

Для меня это был Piggy - автоматические ваучеры и кэшбэк 4.51.48.

Collins USHI 01.11.2021 23:37

В моем случае это был Free VPN для Chrome - VPN Proxy VeePN. После того, как я отключил его, консоль была чистой. Мне не нужно было отключать все расширения.

AllJs 19.11.2021 08:05

как найти ошибки, вызванные каким расширением?

B N Manish 20.11.2021 20:23

Привет! Может ли кто-нибудь помочь мне, как включить код addListener в веб-проект struts 1. Я использую JS, JSP, HTML, FRAMES, CSS в качестве стека пользовательского интерфейса. Просто задумался, где именно нужно его применить. попытался добавить ниже фрагмент в родительский файл js, но он не распознает. обычно у меня нет кода слушателя в моем приложении. chrome.runtime.onMessage.addListener (function (rq, sender, sendResponse) {setTimeout (function () {sendResponse ({status: true});}, 1); alert ("Внутри файла Background.js"); return true ; // Вернуть true, чтобы исправить ошибку});

satvidtech 21.12.2021 10:27

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

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

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

В моем случае это было расширение 1password

Alexander Kim 27.03.2019 06:20

в моем случае это был анализатор цветового контраста

Michael Liquori 25.09.2019 21:36

В моем случае это был Google Publisher Toolbar под Вивальди vivaldi://extensions

Shim-Sao 25.10.2019 20:38

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

Jose Mhlanga 09.04.2020 22:02

В моем случае это было расширение для браузера Kaspersky.

Masood 29.03.2021 16:55

В моем случае это было расширение VPN

Noman Shaikh 06.11.2021 09:55

Для тех, кто приезжает сюда для отладки этой ошибки в 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 думает: «Наши данные показывают, что это изменение не повлияет на большинство расширений».

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

ОБНОВИТЬ: я исправил проблему с COR, но я все еще вижу эту ошибку. Я подозреваю, что здесь виноват Chrome.

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

Проблема не в CORB (как здесь говорится в другом ответе), а в заблокированных CORB проявить как предупреждения, например -

Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.example.com/example.html with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.

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

To send an asynchronous response, there are two options:

  • return true from the event listener. This keeps the sendResponse function valid after the listener returns, so you can call it later.
  • return a Promise from the event listener, and resolve when you have the response (or reject it in case of an error).

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

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

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

В качестве предупреждения не используйте async/await для обратного вызова фонового слушателя. Это то, что мне не удалось, я удалил async и преобразовал свою структуру await в структурный код then, и теперь он работает.

vdegenne 02.10.2019 19:06

но ... я не пытаюсь ответить и не жду ответа!

Michael 31.03.2020 05:45

Какое отличное исправление, спасибо! Все, что мне нужно было сделать, это добавить return true; в конец моей функции chrome.runtime.onMessage.addListener (), и проблема была решена! Я использую jQuery $.ajax внутри этой функции, поэтому мне нужно это исправление.

RcoderNY 09.07.2020 06:45

Спасибо @OfekShilon. Это было идеальное решение. Сработало как положено.

Abrar Hossain 07.11.2020 13:12

@vdegenne, вы можете использовать async для слушателя, но тогда вы не можете return true в конце и не можете использовать обратный вызов sendResponse. Вам просто нужно разрешить с участием фактического ответа.

Papooch 26.02.2021 13:22

это сработало для меня, но мне пришлось вернуть true из обратного вызова в chrome.tabs.executeScript, который был внутри слушателя.

Zafar 10.03.2021 22:29

Просто вызов sendResponse ({}) в (не асинхронном) обратном вызове addListener сработал для меня (нет необходимости возвращать true, и просто возвращать true для меня не сработало)

Nicolas Trahan 01.10.2021 21:07

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

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

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

UPD. Если вам нужно какое-то расширение в режиме инкогнито, например ReduxDevTools или любой другой, в настройках расширения включите "Разрешить в инкогнито"

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

У меня была такая же проблема при ответе на сообщение в обратном вызове. Решение состоит в том, чтобы вернуть истинный в прослушивателе фоновых сообщений.

Вот простой пример background.js. Он отвечает на любое сообщение от popup.js.

chrome.runtime.onMessage.addListener(function(rq, sender, sendResponse) {
    // setTimeout to simulate any callback (even from storage.sync)
    setTimeout(function() {
        sendResponse({status: true});
    }, 1);
    // return true;  // uncomment this line to fix error
});

Вот popup.js, который отправляет сообщение во всплывающем окне. Вы будете получать исключения, пока не отмените комментарий строки «return true» в файле background.js.

document.addEventListener("DOMContentLoaded", () => {
    chrome.extension.sendMessage({action: "ping"}, function(resp) {
        console.info(JSON.stringify(resp));
    });
});

manifest.json, на всякий случай :) Обратите внимание на раздел разрешений тревог!

{
  "name": "TestMessages",
  "version": "0.1.0",
  "manifest_version": 2,
  "browser_action": {
    "default_popup": "src/popup.html"
  },
  "background": {
    "scripts": ["src/background.js"],
    "persistent": false
  },
  "permissions": [
    "alarms"
  ]
}

У меня это сработало! В каком сценарии return false по умолчанию был бы полезен?

Eduardo Reis 27.04.2020 21:59
Документы говорят: This function becomes invalid when the event listener returns, unless you return true. Что значит недействительный? Разве он не должен создаваться каждый раз, когда получает сообщение?
Eduardo Reis 27.04.2020 22:01

@EduardoReis, со значением FALSE может использоваться как информер для уведомления о каком-либо событии.

Aleksej Vasinov 28.04.2020 08:21

Алексей, Вы можете мне помочь, как включить код addListener в веб-проект struts 1. Я использую JS, JSP, HTML, FRAMES, CSS в качестве стека пользовательского интерфейса. Просто задумался, где именно нужно его применить. попытался добавить ниже фрагмент в родительский файл js, но он не распознает. обычно у меня нет кода слушателя в моем приложении. chrome.runtime.onMessage.addListener (function (rq, sender, sendResponse) {setTimeout (function () {sendResponse ({status: true});}, 1); alert ("Внутри файла Background.js"); return true ; // Вернуть true, чтобы исправить ошибку});

satvidtech 21.12.2021 10:28

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

Aleksej Vasinov 22.12.2021 08:18

Убедитесь, что вы используете правильный синтаксис.

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

Вот простой пример contentScript.js Это sendRequest to app.js.

contentScript.js

chrome.extension.sendRequest({
    title: 'giveSomeTitle', params: paramsToSend
  }, function(result) { 
    // Do Some action
});

app.js

chrome.extension.onRequest.addListener( function(message, sender, 
 sendResponse) {
  if (message.title === 'giveSomeTitle'){
    // Do some action with message.params
    sendResponse(true);
  }
});
sendRequest устарел, используйте sendMessage
user889030 03.08.2020 09:33

Привет! Может ли кто-нибудь помочь мне, как включить код addListener в веб-проект struts 1. Я использую JS, JSP, HTML, FRAMES, CSS в качестве стека пользовательского интерфейса. Просто задумался, где именно нужно его применить. попытался добавить ниже фрагмент в родительский файл js, но он не распознает. обычно у меня нет кода слушателя в моем приложении. chrome.runtime.onMessage.addListener (function (rq, sender, sendResponse) {setTimeout (function () {sendResponse ({status: true});}, 1); alert ("Внутри файла Background.js"); return true ; // Вернуть true, чтобы исправить ошибку});

satvidtech 21.12.2021 10:29

Эта ошибка обычно вызвана одним из ваших расширений Chrome.

Я рекомендую установить этот Отключение расширения в один клик, я использую его с сочетанием клавиш COMMAND (⌘) + SHIFT (⇧) + D - чтобы быстро отключить / включить все мои расширения.

После отключения расширений это сообщение об ошибке должно исчезнуть.

Мир! ✌️

Другие вопросы по теме