我尝试在我的js代码中从内部网络服务器获取html页面,并解析它以制作书签。
目前我遇到了Access-Control-Allow-Origin问题,但设置了权限!
{
"manifest_version": 2,
"name": "test",
"description": "test",
"version": "1.0",
"options_page":"config.html",
"browser_action": {
"default_popup": "test.html",
"permissions": [
"*://*/*"
],
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
}
}
我尝试了以下示例中的代码:https://developer.chrome.com/extensions/xhr:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.example.com/data.json", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
// JSON.parse does not evaluate the attacker's scripts.
var resp = JSON.parse(xhr.responseText);
}
}
xhr.send();
但是我收到了错误
XMLHttpRequest无法加载http://api.example.com/data.json。没有 '访问控制允许来源'标题出现在请求的上 资源。 Origin' chrome-extension:// nnbpdlokhkemfjmfkmlfnjonmeaccdmo' 因此不允许访问。
我很丢失!
实际上我想这样做(这也不起作用):
function httpGet(url,user,pass)
{
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET",url, false );
xmlHttp.setRequestHeader("Authorization", "Basic " + btoa(user + ":" +pass))
xmlHttp.send( null );
response= xmlHttp.responseText;
startT=response.indexOf("menuData = [");
//alert(startT);
Text=response.substr(startT+11 );
Text=Text.substr(0,Text.indexOf("\n"));
var obj = eval (Text)
return Text
}