Tri*_*nci 69 google-chrome laravel vue.js
我正在为我的项目使用VueJS和Laravel.这个问题最近开始显现,甚至在旧的git分支中也显示出来.
此错误仅在Chrome浏览器中显示.
小智 76
我在Chrome中停用了所有已安装的扩展程序 - 对我有用.我现在清除控制台没有错误.
小智 32
如果您访问chrome:// extensions /,则可以一次切换每个扩展名,然后查看实际上是哪个触发了该问题。
关闭扩展名后,刷新看到错误的页面,然后左右摆动鼠标或单击。鼠标动作是引发错误的事情。
因此,我能够查明实际上是哪个扩展引起了该问题,并将其禁用。
Ofe*_*lon 12
如果您是扩展程序开发人员,并且已在此处搜索了自己的方法以尝试停止导致此错误:
问题不是CORB,因为被阻止的COR 表现为警告,例如-
跨域读取阻止(CORB)阻止了MIME类型为text / html的跨域响应 https://www.example.com/example.html。有关更多详细信息,请参见 https://www.chromestatus.com/feature/5629709824032768。
问题很可能是对runtime.sendMessage的异步响应处理不当。正如MDN所说:
要发送异步响应,有两个选项:
- 从事件侦听器返回true。这使sendResponse函数在侦听器返回后保持有效,因此您以后可以调用它。
- 从事件侦听器返回一个Promise,并在收到响应时解决(或在发生错误时拒绝它)。
当您发送异步响应但无法使用这两种机制中的任何一种时,提供的sendResponse参数sendMessage超出范围,结果与错误消息所述的完全一样:在响应被关闭之前,您的消息端口(消息传递设备)已关闭收到。
Webextension-polyfill的作者已经在2018年6月撰写了有关它的文章。
因此,最重要的是,如果您看到扩展引起这些错误,请仔细检查所有onMessage侦听器。其中一些可能需要开始返回promise(将它们标记为异步应足够了)。
小智 10
确保您使用正确的语法。
我们应该在监听后使用sendMessage()方法。
这是contentScript.js的一个简单示例,它将 request 发送到app.js。
内容脚本.js
chrome.extension.sendRequest({
title: 'giveSomeTitle', params: paramsToSend
}, function(result) {
// Do Some action
});
Run Code Online (Sandbox Code Playgroud)
应用程序.js
chrome.extension.onRequest.addListener( function(message, sender,
sendResponse) {
if(message.title === 'giveSomeTitle'){
// Do some action with message.params
sendResponse(true);
}
});
Run Code Online (Sandbox Code Playgroud)
如果错误原因是扩展名,请使用无痕 Ctrl+ Shift+ N。在隐身模式下,Chrome没有扩展程序。
UPD。如果您需要在隐身模式下进行某些扩展,例如ReduxDevTools或其他任何扩展,请在扩展设置中启用“允许隐身”
Post很旧,与Chrome扩展程序的开发并没有密切的关系,但请在此处发布。
在回调中响应消息时,我遇到了同样的问题。解决方案是在后台消息侦听器中返回true。
这是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
});
Run Code Online (Sandbox Code Playgroud)
这是popup.js,它在弹出窗口上发送消息。在取消注释background.js文件中的“ return true”行之前,您将获得例外。
document.addEventListener("DOMContentLoaded", () => {
chrome.extension.sendMessage({action: "ping"}, function(resp) {
console.log(JSON.stringify(resp));
});
});
Run Code Online (Sandbox Code Playgroud)
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"
]
}
Run Code Online (Sandbox Code Playgroud)
此错误通常是由您的 Chrome 扩展程序之一引起的。
我建议安装此One-Click Extension Disabler,我将它与键盘快捷键COMMAND (?)+ SHIFT (?)+ D— 一起使用,以快速禁用/启用我的所有扩展程序。
禁用扩展后,此错误消息应该会消失。
和平!??
| 归档时间: |
|
| 查看次数: |
82216 次 |
| 最近记录: |