Google chrome extension 双向通信在Chrome扩展中返回错误

Google chrome extension 双向通信在Chrome扩展中返回错误,google-chrome-extension,Google Chrome Extension,我正在尝试在contentscript和background script之间发送消息,如下所示 ContentScript.js Background.js 错误 无法发送响应:如果要在侦听器返回后发送响应,chrome.runtime.onMessage侦听器必须返回true 如何解决此问题?这应该可以解决: chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { ...

我正在尝试在
contentscript
background script
之间发送消息,如下所示

ContentScript.js

Background.js

错误
无法发送响应:如果要在侦听器返回后发送响应,chrome.runtime.onMessage侦听器必须返回true

如何解决此问题?

这应该可以解决:

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
    ...
    return true; //Important
});

在您的案例中,您忘记在第二个
案例中添加返回值

您是否尝试过在第二个
案例中添加
返回真值
,如错误消息所示?@apsillers是的,工作正常。我必须在两个地方写上return true,但我只在一个地方写了。。这就是问题所在。谢谢你指出。请你把它作为答案贴出来,这样我就可以接受了。
 chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
   switch(request.type){
       case "some":
            sendResponse({ data : "Some Response" });
            return true;
       break;
       case "someOther":
            // Here I am getting an error. Error is given below
            sendResponse({ data : "Some Response" });
       break;
   }
 });
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
    ...
    return true; //Important
});