XMLHttpRequest无法在Google Chrome打包的Web应用程序中运行

时间:2012-07-07 14:16:22

标签: javascript xml json google-chrome xmlhttprequest

我正在编写打包的 Chrome Web App 并尝试解析外部XML。它在我将XML文件下载到我的服务器时起作用,但是当我将XML文件更改为Web上的位置时它不起作用。

例如,我正在尝试访问此文件:http://www.w3schools.com/xml/note.xml

这是我的JavaScript代码(请注意HTML):

function dashboardContent() {
html="";

xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://www.w3schools.com/xml/note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

html+=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
html+=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
html+=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

document.getElementById("contentArea").innerHTML=html;

}

在我的Chrome Web App manifest.json文件中,我根据Google manifest requirement for Cross-origin XMLHttpRequests的权限添加以下内容:

{
    "name": "BirdTrax",
    "version": "0.1.1",

    "description": "Birding explorer to help you plan birding trips and find recently eBirded sightings, rarities, and checklists in your area",
    "icons": {
         "16": "icons/helloWorld_16.png",
        "128": "icons/helloWorld_128.png"
    },

    "app": {
        "launch": {
            "local_path": "main.html",
            "container": "tab"
        }
    },

    "background_page": "background.html",
    "options_page": "options.html",


"permissions": [
  "http://www.w3schools.com/*",
  "notifications",
  "unlimitedStorage"
],

    "incognito": "split"


}

我不确定我是否仍然遗漏了一些东西,但代码对我不起作用。有什么建议,提示,想法吗?我真的很感激任何帮助!

1 个答案:

答案 0 :(得分:3)

/之后的通配符。否则,您允许在根目录下扩展请求页面。

"permissions": [
  "http://www.w3schools.com/*",

在您的情况下,您只请求一个网址。甚至可以更好地限制模式:

"permissions": [
  "http://www.w3schools.com/xml/note.xml",