Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XMLHttpRequest not working in Google Chrome Packaged Web App

I'm writing a packaged Chrome Web App and trying to parse external XML. It works when I download the XML file to my server, but does not work when I change the XML file to the location on the web.

For example, I am trying to access this file: http://www.w3schools.com/xml/note.xml

Here is my JavaScript code (note that 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;

}

In my Chrome Web App manifest.json file, I put the following under permissions per Google's 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"


}

I'm not sure if I'm still missing something, but the code isn't working for me. Any suggestions, tips, ideas? I really appreciate any help!!

like image 644
zdebruine Avatar asked Apr 24 '26 18:04

zdebruine


1 Answers

Suffice a wildcard after /. Otherwise, you're allowing your extension to only request pages at the root.

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

In your case, you're requesting only one URL. It might be even better to restrict the pattern even more:

"permissions": [
  "http://www.w3schools.com/xml/note.xml",
like image 132
Rob W Avatar answered Apr 27 '26 08:04

Rob W