我想将我的Chrome扩展程序连接到我的服务器,并来回发送数据。特别是,当用户在浏览某个URL时单击该扩展上的按钮时,服务器会检查其数据库,以查看该URL已被点击了多少次,增加计数并将新计数发回给用户。Chrome扩展数据连接到服务器
我知道发送数据到服务器是可能的AJAX请求,但如何从服务器获取数据?
我想将我的Chrome扩展程序连接到我的服务器,并来回发送数据。特别是,当用户在浏览某个URL时单击该扩展上的按钮时,服务器会检查其数据库,以查看该URL已被点击了多少次,增加计数并将新计数发回给用户。Chrome扩展数据连接到服务器
我知道发送数据到服务器是可能的AJAX请求,但如何从服务器获取数据?
我认为,您可以使用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){
// ...
}
});
你显然需要使用XHR/阿贾克斯
但本铬扩展API,你可能会得到这样的错误
没有'Access-Control-Allow-Origin'标题存在于请求的资源。
为了解决这个问题,可以简单地把链接到服务器的许可阵列上的manifest.json
"permissions": [
"tabs",
"http://www.myserver.dom"
],
更详细的说明见this documentation by Google
也就是说,或者如果它是您控制的服务器 - 您可以添加“Access-Control-Allow-Origin”标头。 – Xan