2012-07-07 90 views
3

我正在編寫打包的Chrome瀏覽器應用程序並嘗試解析外部XML。它在我將XML文件下載到服務器時起作用,但在將XML文件更改爲網頁上的位置時不起作用。XMLHttpRequest無法在谷歌Chrome瀏覽器中打包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文件,我把每個谷歌的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" 


} 

我不知道如果我還是失去了一些東西,但代碼是不是爲我工作。任何建議,提示,想法?我非常感謝任何幫助!

+0

在哪個文件中放置腳本?函數如何被調用? – 2012-07-07 14:47:02

+0

@RobW當加載元素時,將調用該函數。 中,該文檔加載爲默認的第一頁。 – Wagtail 2012-07-07 14:50:36

+0

我想我會複製Google自己的示例代碼並嘗試從那裏開始工作。謝謝你的幫助! – Wagtail 2012-07-07 15:00:10

回答

3

只需/後的通配符。否則,你允許你的分機號碼只有請求頁面的根目錄。

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

就你而言,你只需要一個URL。甚至可以更好地限制模式:

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

通配符或完整的URL都不起作用。 – Wagtail 2012-07-07 14:22:10

+1

@wagtail不要忘記(重新包裝和重新加載你的分機)。 – 2012-07-07 14:25:06

+0

是的:)我做到了。但是現在我不確定,也許錯誤在於我進行XML解析的方式。但是,爲什麼當這個文件在我的服務器上時呢? – Wagtail 2012-07-07 14:28:32

相關問題