我最近卸载并重新安装了Postgres10。然后,我去运行一个Node / Express / React应用程序,该应用程序依赖于连接到Postgres数据库(并使用Sequelize与之通信)。
最初,它无法连接到数据库。我意识到卸载过程删除了我的旧数据库,所以我去了并重新创建了一个新的数据库,名称与此应用程序连接。然后,当我重新启动应用程序(服务器和客户端)时,与数据库的前端交互又像往常一样工作-编写新用户并读取它们以进行身份验证等。
但是,现在我在应用程序的每个页面加载的Chrome开发工具控制台中都遇到以下错误:
未经检查的runtime.lastError:无法建立连接。接收端不存在
此错误引用了localhost /:1。当我将鼠标悬停在上面时,它显示http://localhost:3000/,即我正在浏览器中查看应用程序的地址。
任何人都知道发生了什么事吗?我发现导致该错误的其他大多数线程似乎都与尝试开发Chrome扩展程序的人有关,即使那样,它们往往响应也很少。
答案 0 :(得分:18)
我一直得到完全相同的错误(除了我的应用程序没有后端和React前端),我发现它不是来自我的应用程序,而是来自“视频速度”控制器” Chrome扩展程序。如果您不使用该扩展程序,请尝试禁用所有扩展程序,然后再将其逐一打开?
答案 1 :(得分:18)
在开发Chrome扩展程序时,我发现了同样的问题。我终于找到了关键问题。
未经检查的runtime.lastError:无法建立连接。接收端不存在
关键问题在于,当background.js
通过chrome.tabs.sendMessage将消息发送到活动标签时,页面上的content.js
尚未准备就绪或未重新加载。调试时。我们必须确保content.js处于活动状态。而且它不可能是没有刷新的页面,旧页面不会更新您的js本身
这是我的代码:
//background.js
chrome.tabs.query({active: true, currentWindow: true},function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
console.log(response);
});
});
//content.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
console.log(request, sender, sendResponse);
sendResponse('我收到你的消息了:'+JSON.stringify("request"));
});
答案 2 :(得分:10)
该错误通常是由Chrome扩展程序引起的。 尝试禁用所有扩展,问题应该消失。
答案 3 :(得分:10)
如果您是扩展程序开发人员,请参阅此Chrome Extension message passing: Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist
问题的核心是chrome API行为发生了变化,您需要为其添加解决方法。
答案 4 :(得分:6)
解决方案
对于Chrome:
您打开的窗口中出现控制台错误,请打开另一个新窗口。
在第二个窗口中,转到: chrome:// extensions
通过切换禁用每个扩展(每个卡的右下角的蓝色滑块),并在切换每个扩展后使用控制台刷新窗口。
没有错误后,请删除扩展名。
答案 5 :(得分:3)
您只需要在window.chrome.runtime.lastError
回调中处理runtime.sendMessage
。就这么简单,没有幻想。我花了很多时间修复它,最后才意识到这个错误只需要处理。下面是我的代码:
window.chrome.runtime.sendMessage(
EXTENSION_ID,
{ message:"---" }, // jsonable message
(result) => {
if (!window.chrome.runtime.lastError) {
// do you work, that's it. No more unchecked error
}
}
);
});
答案 6 :(得分:2)
删除“ Udacity前端反馈” chrome扩展程序可以为我解决此问题。
答案 7 :(得分:1)
就我而言,删除“adblocker youtube”扩展程序对我有用
答案 8 :(得分:1)
我删除了“视频速度控制器”Chrome 扩展程序,错误也被删除了。 它像这样对我有用。在您的情况下,可能还有一些其他扩展可能会导致此错误。
答案 9 :(得分:1)
对我来说这是个选项卡:https://chrome.google.com/webstore/detail/tab-bundler/ooajenhhhbdbcolenhmmkgmkcocfdahd
禁用扩展程序解决了该问题。
答案 10 :(得分:1)
答案 11 :(得分:0)
我正在{/ {1}}页/标签上测试扩展程序。在另一个选项卡上对其进行测试解决了此问题。我认为edge://extensions/
也可能会发生这种情况。
答案 12 :(得分:0)
奇怪的是,对于我自己,我只是禁用了所有扩展名,错误消失了。
但是,在重新启用所有我禁用的功能之后,该错误仍然消失了。
答案 13 :(得分:0)
对我来说是一些扩展。禁用然后重新启用可解决此问题。语法就是其中之一。希望错误不会再次出现。
答案 14 :(得分:0)
这通常是由扩展程序引起的。
如果您不想禁用或删除导致此错误的扩展名,则可以通过在控制台的“过滤器”框中键入-/^Unchecked\sruntime\.lastError\:\sCould\snot\sestablish\sconnection\.\sReceiving\send\sdoes\snot\sexist\.$/
来过滤出此特定错误:
据我所知,此过滤器将一直保留到您手动删除它为止,可以根据需要关闭并重新打开控制台,重新启动Chrome等,并且永远不会自动删除该过滤器。
答案 15 :(得分:0)
我仅在第一个Chrome页面上收到消息=
当Chrome未运行时,我直接打开它或通过双击桌面上的页面来打开它。
(我不知道这是否重要,但是我已关闭“在关闭Chrome浏览器后继续运行后台应用程序”。)
因此,我假设这是Chrome的间谍活动/“增强用户体验”的尝试。
我不知道它要发送什么,但我很高兴它无法发送! :)
因此,第二个(或除第一个以外的任何一个)选项卡没有错误。
==无需禁用任何功能(扩展程序等)。
答案 16 :(得分:0)
就我而言,是Cacher Extension-但是,是的,请先禁用每个缓存,然后重新加载页面
答案 17 :(得分:0)
未经检查的runtime.lastError:无法建立连接。接收端不存在。
我之后“实现”此错误
当然,当我使用Chrome调试器重做上述步骤2和3时,控制台错误再次出现。这鼓励我改用其他调试器。那我就不会误认为我自己的代码会导致控制台错误!
答案 18 :(得分:0)
对我来说,这是由于:
Iobit冲浪保护和广告删除扩展程序
随 Iobit高级系统维护软件一起提供。但是,控制台可能会为您提供有关禁用需要执行的操作或该问题的原因的相关信息。
根据Google搜索,此错误的可能原因是因为导致该错误的扩展名可能正在使用chrome.runtime.sendMessage(),然后尝试使用响应回调。
希望此信息有所帮助。祝你有美好的一天!
答案 19 :(得分:0)
这只是由安装的 chrome 扩展引起的,所以解决这个问题首先禁用所有 chrome 扩展,然后开始一个接一个地启用以检测哪个扩展是因为你可以启用其余的。
答案 20 :(得分:0)
对我来说,该错误是由于onelogin chrome扩展名引起的。删除它可以解决问题。