title: Loading JSON with ajax working in local browser, but not in the PhoneGap app
body: <p>When loading external JSON-data in my browser (run it locally), it shows the requested data. When using it in the cloud-based build service of PhoneGap, the page loads but without the JSON-data. 
  Does anyone have the solution to make it work in the PhoneGap app (iOS and Android)? Thanks in advance!
  Below de code of a.html</p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
      &lt;head&gt;
          &lt;title&gt;Test&lt;/title&gt;
          &lt;meta http-equiv='Content-Type' content='text/html; charset=utf-8'/&gt;
          &lt;meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/&gt;
    &lt;link rel="stylesheet" href="css/jquery.mobile-1.4.3.min.css"&gt;
    &lt;script src="js/jquery-1.9.1.min.js"&gt;&lt;/script&gt;
  
  &lt;script type="text/javascript"&gt;
  $(document).bind("mobileinit", function() {
      $.support.cors = true;
      $.mobile.allowCrossDomainPages = true;
  });
  &lt;/script&gt;
  
    &lt;script src="js/jquery.mobile-1.4.3.min.js"&gt;&lt;/script&gt;
    &lt;script src="js/menu-simple.js"&gt;&lt;/script&gt;
  &lt;script type="text/javascript"&gt;
  
      alert('LOADING...');  
  
  $(document).ready(function() {
  
      alert('READY!');
  
  $.ajax({
              url: "http://www.example.org/stand.php",
              dataType: "jsonp",
              jsonp: 'jsoncallback',
              success: function(parsed_json) {
                 alert("YEP!");
  
                 for (var i in parsed_json)
                  {
                    var row = parsed_json[i];          
  
                      var nr = row['nr'];              //get id
                      var team = row['team'];           //get name
                      var played = row['played'];
                      $('#info').append("&lt;b&gt;nr: &lt;/b&gt;"+nr+"&lt;b&gt; team: &lt;/b&gt;"+team+"&lt;b&gt; played: &lt;/b&gt;"+played)
                                .append("&lt;hr /&gt;");
                  }
  
                 //var loc = parsed_json[1];
                 //var weather = "team: " + parsed_json.team + "&lt;br /&gt;";
                 //weather += "played: " + parsed_json.played + " ";
                 //weather += "-" + parsed_json.wins + " wins";
                 //$("#info").html(weather);
             }    
      });
  });
  &lt;/script&gt;
  
  &lt;/head&gt;
  &lt;body&gt;
  
  &lt;div class="headerHolder"&gt;&lt;div class="logo"&gt;&lt;/div&gt;&lt;/div&gt;
  &lt;div style="width:100%; height:20px; float:left; margin-bottom:1px;"&gt;&lt;/div&gt;
  
  &lt;div id="info" style="width:100%; padding-bottom:5px;"&gt;&lt;/div&gt;
  
  &lt;div style="clear:both;"&gt;&lt;/div&gt;
  
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Below de code of the stand.php:</p>
  
  <pre><code>&lt;?php
  header('Access-Control-Allow-Origin: *');//for local browser test
  
  $_POST['team'] = 'E3';
  $doc = new DOMDocument();
  $url = 'http://www.example.org/clubs/teams/embed/bbgz35e/team/'.$_POST['team'].'?layout=stand&amp;stand=1&amp;format=xml';
  
  if (!$doc-&gt;load($url)) {     
  exit('Kon stand niet inladen!');
  }
  
  $xpath = new DOMXPath($doc);
  
  //$poulenaam = $xpath-&gt;query('/div[@id="teampagina"]/h3')-&gt;item(0)-&gt;nodeValue;
  //
  //$nodes = $xpath-&gt;query('//tbody/tr/td[@class="wins"]');
  //
  //$doelpunten = 0;
  //foreach ($nodes as $node) {
  //  $doelpunten += (int)$node-&gt;nodeValue;
  //
  //}
  //
  //echo "Aantal doelpunten in de poule `{$poulenaam}`: {$doelpunten}";
  
  
  $tableRows = $xpath-&gt;query('//tbody/tr');
  $x=1;
  $stand = Array();
  
  foreach ($tableRows as $row) {
  $classes = Array();
      $cells = $xpath-&gt;query('td/@class', $row);
      foreach ($cells as $cell) {
          //echo ' class =  ';
          //var_export($cell-&gt;nodeValue);
          $classes[] = $cell-&gt;nodeValue;
      }$x++;
  }
  array_unshift($classes, "phoney");
  unset($classes[0]);
  //print_r($classes);
  //echo "&lt;br&gt;\n";
  
  $z = 1;
  foreach ($tableRows as $row) {
      $cells = $xpath-&gt;query('td', $row);
  $i=1;
  
      foreach ($cells as $cell) {
          //echo $z.'value'.$i.' =  ';
          //var_export($cell-&gt;nodeValue);
          //echo "&lt;br&gt;\n";
          $stand[$z][$classes[$i]] = $cell-&gt;nodeValue;
      $i++;   
      } $z++;
  }
  //array_unshift($stand, "phoney");
  //unset($stand[0]);
  //print_r($stand);
  echo json_encode($stand);
  
  ?&gt;
  </code></pre>
  
  <p>Below de code of the config.xml:</p>
  
  <pre><code>&lt;!-- config.xml reference: https://build.phonegap.com/docs/config-xml --&gt;
  &lt;widget xmlns     = "http://www.w3.org/ns/widgets"
          xmlns:gap = "http://phonegap.com/ns/1.0"
          id        = "com.phonegap.hello-world"
          version   = "1.0.0"&gt;
  
      &lt;!-- versionCode is optional and Android only --&gt;       
  
      &lt;name&gt;Example&lt;/name&gt;
  
      &lt;description&gt;
         Example app
      &lt;/description&gt;
  
      &lt;author href="http://www.example.org" email="support@example.org"&gt;
          Example
      &lt;/author&gt;
  
      &lt;!-- current version of PhoneGap --&gt;
      &lt;preference name="phonegap-version" value="3.3.0" /&gt;
  
      &lt;!--
          Enable individual API permissions here.
          The "device" permission is required for the 'deviceready' event.
      --&gt;
      &lt;gap:plugin name="org.apache.cordova.device" /&gt;
  
      &lt;!--
          If you do not want any permissions to be added to your app, add the
          following tag to your config.xml; you will still have the INTERNET
          permission on your app, which PhoneGap requires.
      --&gt;
      &lt;preference name="permissions"                value="none"/&gt;
  
      &lt;!-- Customize your app and platform with the preference element. --&gt;
      &lt;preference name="orientation"                value="default" /&gt;        &lt;!-- all: default means both landscape and portrait are enabled --&gt;
      &lt;preference name="target-device"              value="universal" /&gt;      &lt;!-- all: possible values handset, tablet, or universal --&gt;
      &lt;preference name="fullscreen"                 value="true" /&gt;           &lt;!-- all: hides the status bar at the top of the screen --&gt;
      &lt;preference name="webviewbounce"              value="true" /&gt;           &lt;!-- ios: control whether the screen 'bounces' when scrolled beyond the top --&gt;
      &lt;preference name="prerendered-icon"           value="true" /&gt;           &lt;!-- ios: if icon is prerendered, iOS will not apply it's gloss to the app's icon on the user's home screen --&gt;
      &lt;preference name="stay-in-webview"            value="false" /&gt;          &lt;!-- ios: external links should open in the default browser, 'true' would use the webview the app lives in --&gt;
      &lt;preference name="ios-statusbarstyle"         value="black-opaque" /&gt;   &lt;!-- ios: black-translucent will appear black because the PhoneGap webview doesn't go beneath the status bar --&gt;
      &lt;preference name="detect-data-types"          value="true" /&gt;           &lt;!-- ios: controls whether data types (such as phone no. and dates) are automatically turned into links by the system --&gt;
      &lt;preference name="exit-on-suspend"            value="false" /&gt;          &lt;!-- ios: if set to true, app will terminate when home button is pressed --&gt;
      &lt;preference name="show-splash-screen-spinner" value="true" /&gt;           &lt;!-- ios: if set to false, the spinner won't appear on the splash screen during app loading --&gt;
      &lt;preference name="auto-hide-splash-screen"    value="true" /&gt;           &lt;!-- ios: if set to false, the splash screen must be hidden using a JavaScript API --&gt;
      &lt;preference name="disable-cursor"             value="false" /&gt;          &lt;!-- blackberry: prevents a mouse-icon/cursor from being displayed on the app --&gt;
      &lt;preference name="android-minSdkVersion"      value="7" /&gt;              &lt;!-- android: MIN SDK version supported on the target device. MAX version is blank by default. --&gt;
      &lt;preference name="android-installLocation"    value="auto" /&gt;           &lt;!-- android: app install location. 'auto' will choose. 'internalOnly' is device memory. 'preferExternal' is SDCard. --&gt;
  
      &lt;!-- Plugins can also be added here. --&gt;
      &lt;!--
          &lt;gap:plugin name="Example" /&gt;
          A list of available plugins are available at https://build.phonegap.com/docs/plugins
      --&gt;
  
      &lt;!-- Define app icon for each platform. --&gt;
      &lt;icon src="icon.png" /&gt;
      &lt;icon src="res/icon/android/icon-36-ldpi.png"   gap:platform="android"    gap:density="ldpi" /&gt;
      &lt;icon src="res/icon/android/icon-48-mdpi.png"   gap:platform="android"    gap:density="mdpi" /&gt;
      &lt;icon src="res/icon/android/icon-72-hdpi.png"   gap:platform="android"    gap:density="hdpi" /&gt;
      &lt;icon src="res/icon/android/icon-96-xhdpi.png"  gap:platform="android"    gap:density="xhdpi" /&gt;
      &lt;icon src="res/icon/ios/icon-57.png"            gap:platform="ios"        width="57" height="57" /&gt;
      &lt;icon src="res/icon/ios/icon-72.png"            gap:platform="ios"        width="72" height="72" /&gt;
      &lt;icon src="res/icon/ios/icon-57-2x.png"         gap:platform="ios"        width="114" height="114" /&gt;
      &lt;icon src="res/icon/ios/icon-72-2x.png"         gap:platform="ios"        width="144" height="144" /&gt;
  
  
      &lt;!-- Define app splash screen for each platform. --&gt;
      &lt;gap:splash src="res/screen/android/screen-ldpi-portrait.png"  gap:platform="android" gap:density="ldpi" /&gt;
      &lt;gap:splash src="res/screen/android/screen-mdpi-portrait.png"  gap:platform="android" gap:density="mdpi" /&gt;
      &lt;gap:splash src="res/screen/android/screen-hdpi-portrait.png"  gap:platform="android" gap:density="hdpi" /&gt;
      &lt;gap:splash src="res/screen/android/screen-xhdpi-portrait.png" gap:platform="android" gap:density="xhdpi" /&gt;
      &lt;gap:splash src="res/screen/ios/screen-iphone-portrait.png"    gap:platform="ios"     width="320" height="480" /&gt;
      &lt;gap:splash src="res/screen/ios/screen-iphone-portrait-2x.png" gap:platform="ios"     width="640" height="960" /&gt;
      &lt;gap:splash src="res/screen/ios/screen-ipad-portrait.png"      gap:platform="ios"     width="768" height="1024" /&gt;
      &lt;gap:splash src="res/screen/ios/screen-ipad-landscape.png"     gap:platform="ios"     width="1024" height="768" /&gt;
  
      &lt;!--
          Define access to external domains.
  
          &lt;access /&gt;            - a blank access tag denies access to all external resources.
          &lt;access origin="*" /&gt; - a wildcard access tag allows access to all external resource.
  
          Otherwise, you can specify specific domains:
      --&gt;
          &lt;access origin="*" /&gt;
          &lt;access origin="http://www.example.org" /&gt;
  &lt;!-- allow all pages, use for development --&gt;
  
      &lt;!--
          &lt;access origin="http://phonegap.com" /&gt;                    - allow any secure requests to http://phonegap.com/
          &lt;access origin="http://phonegap.com" subdomains="true" /&gt;  - same as above, but including subdomains, such as http://build.phonegap.com/
          &lt;access origin="http://phonegap.com" browserOnly="true" /&gt; - only allows http://phonegap.com to be opened by the child browser.
      --&gt;
  
  &lt;/widget&gt;
  </code></pre>