读取Chrome响应数据时出现问题

时间:2019-04-25 20:56:22

标签: javascript google-chrome-extension chrome-runtime

我在popup.html中有一个popup.js文件,该文件将请求发送到background.js,background.js得到一个cookie,如果cookie存在,它将发送响应到popup.js。

但是当我尝试打开弹出窗口时,会收到此错误

  

1-错误处理响应:TypeError:无法读取未定义的属性'data'

     

2-未经检查的runtime.lastError:消息端口在收到响应之前已关闭。

代码

Background.js

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {

if (msg.topic === 'data') {
 chrome.cookies.get({ url: 'https://domain', name: 'name' },
function (cookie) {
    if (cookie) {
    sendResponse({data: "yes"});    

  } else { sendResponse({data: "no"});  }
     return true;


}
 )};

});

Popup.js

chrome.runtime.sendMessage({
topic: 'data'},
function(response) {
  if (response.data == "yes")
  document.write = 'COOKIE YES'

   else if (response.data == "no")
  document.write = 'COOKIE NO'
});


感谢所有回复的人

1 个答案:

答案 0 :(得分:-1)

"Unchecked runtime.lastError: The message port closed before a response was received."与您已安装的浏览器扩展有关,与您使用的代码无关。我相信可以忽略这一点。

使用console.log(response)来查看您是否认为自己正在接受。