我有一个应用程序和谷歌浏览器的扩展程序,我希望该应用程序从扩展程序请求cookie的值,并获取值作为响应。 这是我当前的代码,它不起作用:
app.js:
Helper: {
...
requestSessionId: function(sub){//pass subdomain of the cookie
console.log('request session id for ' + sub + '.example.com');
chrome.runtime.sendMessage('myextensionkeyorwhateverthisis',
{getSessionId: {subdomain: sub}},
function(response) {
console.log('response: ', response); //nothing to see here
}
);
},
...
}
extension.js:
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
if(sender.id == 'theappkeyorhowthisisnamed'){
if(request.getSessionId){
chrome.cookies.getAll({domain: request.getSessionId.subdomain + '.example.com', name: 'sid'}, function(res){
console.log(res[0].value);// I see this in my developer console,
sendResponse(res); // but this is either not send or not received, for I cannot see any output in the app, as noted above
return;
});
}
}
}
);
我确信应用程序和扩展程序之间的连接有效,因为我在扩展程序中添加了一个Listener,它回复了所有具有虚拟值的消息并且工作正常。所以我认为问题出在cookie请求的回调中,但是我没有收到任何错误,所以我不知道它是什么。也许sendResponse
在回调范围内不起作用?
我需要做些什么才能工作? 我也很感激每一个回答,告诉我如何以另一种方式做到这一点。