Chrome扩展程序jQuery POST回调

时间:2011-08-31 17:41:03

标签: jquery google-chrome post google-chrome-extension

我成功通过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)
    }
)

为什么这不起作用?还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

它不起作用,因为警报不是调试扩展的好方法。用console.log替换所有警报,尤其是在弹出窗口中,它只是静默地停止执行其余代码。

弹出窗口和后台页面拥有完全相同的权限,因此弹出窗口中的任何工作与否都会在后台页面中表现完全相同。

因此,首先要删除所有警报,并确保在清单中声明了域权限:

"permissions": [
  "http://destination.com/"
],

这应该足够了,假设其余代码是正确的。

答案 1 :(得分:0)

感谢所有帮助。显然我是愚蠢的,$.post()没有调用成功函数的原因是我让Tornado发回一个字符串而不是一个JSON对象......