我是chrome扩展程序的新手,我正在开发一个扩展程序,它将与我的其他Web服务进行通信。我的其他Web服务将返回一个json字符串。我想做的是调用我的Web服务,获取响应json。
目前我在我的background.js中有这个:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.getSelected(null,function(tab) {
var link = tab.url;
alert(link);
});
});
我的计划是当用户点击图标扩展名时,当前标签页将被发送到我的网络服务,它将获得响应json。
我的问题是,在C#中执行类似webclient.downloadstring
的代码或语法是什么?或者我如何与Web服务进行通信?
答案 0 :(得分:7)
您正在寻找的API称为XMLHttpRequest
(也称为“AJAX”)。请阅读https://developer.chrome.com/extensions/xhr处的文档以获取更多信息。
以下是一个例子:
chrome.browserAction.onClicked.addListener(function(tab) {
var link = tab.url;
var x = new XMLHttpRequest();
x.open('GET', 'http://example.com/?whatever=' + link);
x.onload = function() {
alert(x.responseText);
};
x.send();
});
请注意。 XMLHttpRequest
API是异步的。这意味着你不能做这样的事情:
...
var result;
x.onload = function() {
result = x.responseText;
};
x.send();
alert(result); // Does not behave as you expect!
答案 1 :(得分:0)
我认为所有事情都在权限中。
{
"manifest_version": 2,
"name": "AppuntiVari.net - Agenda events",
"description": "AppuntiVari.net - Agenda events",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": ["tabs", "http://appuntivari.net/*"],
"options_page": "options.html",
"homepage_url": "http://appuntivari.net",
"background": { "scripts": ["js/jquery-1.10.2.js",
"js/jquery-ui-1.10.4.custom.js","background.js","popup.js"] },
"web_accessible_resources": [
"48.png"
],
"icons": {"16": "16.png", "48": "48.png", "128": "128.png"}
}
$.ajax({
url: "http://appuntivari.net/MyServiceAPI-portlet/
api/secure/jsonws/agenda/get-events-byIdUser/id_user/"+id_user,
type: "GET",