我想将我的 Chrome 扩展程序连接到我的服务器,并来回发送数据。特别是,当用户在浏览某个 URL 时单击扩展程序上的按钮时,服务器会检查其数据库以查看该 URL 已被单击的次数,增加计数并将新计数发送回用户。
我知道通过 AJAX 请求可以将数据发送到服务器,但是从服务器取回数据呢?
我想将我的 Chrome 扩展程序连接到我的服务器,并来回发送数据。特别是,当用户在浏览某个 URL 时单击扩展程序上的按钮时,服务器会检查其数据库以查看该 URL 已被单击的次数,增加计数并将新计数发送回用户。
我知道通过 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-response。用于传输计数的数据类型取决于您。例如,这可以是json
(jQuery 提供了一个速记方法getJSON
,它执行相同的自定义ajax
调用)。
如果您不想要 GET,您可以使用 POST 并指定数据,如下所示:
$.ajax({
type: "POST",
url: "ajax/count.php",
data: { url: newURL },
success: function(data){
// ...
}
});
您显然需要使用xhr / ajax
但是使用当前的 chrome-extension API,您可能会收到这样的错误
请求的资源上不存在“Access-Control-Allow-Origin”标头。
为了解决这个问题,可以简单地将指向服务器的链接放在 manifest.json 中的权限数组中
"permissions": [
"tabs",
"http://www.myserver.dom"
],
有关更详细的说明,请参阅Google 的此文档