2012-11-04 48 views
3

我想将我的Chrome扩展程序连接到我的服务器,并来回发送数据。特别是,当用户在浏览某个URL时单击该扩展上的按钮时,服务器会检查其数据库,以查看该URL已被点击了多少次,增加计数并将新计数发回给用户。Chrome扩展数据连接到服务器

我知道发送数据到服务器是可能的AJAX请求,但如何从服务器获取数据?

回答

3

我认为,您可以使用AJAX以直接方式获取更新计数。例如(使用jQuery):

$.ajax({ 
    url: 'ajax/count.php?url=' + encodeURIComponent(newURL), 
    // dataType: 'json', 
    success: function(data) { 
    // parse you data received from server here 
    // data.count 
    } 
}); 

这样你就可以“送”新的信息作为GET请求的参数,并从服务器的HTTP响应所需的信息。用于传输计数的数据类型由您决定。例如,这可以是json(jQuery提供了一种简写方法getJSON,它执行相同的自定义ajax调用)。

如果你不想GET,你可以使用POST并将其设定数据:

$.ajax({ 
    type: "POST", 
    url: "ajax/count.php", 
    data: { url: newURL }, 
    success: function(data){ 
    // ... 
    } 
}); 
1

你显然需要使用XHR/阿贾克斯

但本铬扩展API,你可能会得到这样的错误

没有'Access-Control-Allow-Origin'标题存在于请求的资源。

为了解决这个问题,可以简单地把链接到服务器的许可阵列上的manifest.json

"permissions": [ 
    "tabs", 
    "http://www.myserver.dom" 
], 

更详细的说明见this documentation by Google

+2

也就是说,或者如果它是您控制的服务器 - 您可以添加“Access-Control-Allow-Origin”标头。 – Xan