我成功通过Google扩展程序中的popup.html调用jQuery POST。但是,尚未调用成功或错误回调函数。我在stackoverflow上搜索过,似乎这是因为域。
作为解决方案,我尝试将chrome.extension.sendRequest发送到background.html页面,并让后台页面执行帖子。但是,background.html页面上的监听器似乎没有收到请求。
在popup.html中,我有
chrome.extension.sendRequest({test:'test123'}, function(response) {
alert('hello')
}
在background.html中,我有
chrome.extension.onRequest.addListener(
function(request, sender, resndResponse) {
console.log(request)
}
)
为什么这不起作用?还有其他解决方案吗?
答案 0 :(得分:1)
它不起作用,因为警报不是调试扩展的好方法。用console.log
替换所有警报,尤其是在弹出窗口中,它只是静默地停止执行其余代码。
弹出窗口和后台页面拥有完全相同的权限,因此弹出窗口中的任何工作与否都会在后台页面中表现完全相同。
因此,首先要删除所有警报,并确保在清单中声明了域权限:
"permissions": [
"http://destination.com/"
],
这应该足够了,假设其余代码是正确的。
答案 1 :(得分:0)
感谢所有帮助。显然我是愚蠢的,$.post()
没有调用成功函数的原因是我让Tornado发回一个字符串而不是一个JSON对象......