2012-08-16 34 views
2

我有一個與PhoneGap AJAX/Json請願的問題。我有這樣的代碼:Ajax Json在手機上的跨域

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Cartelera</title> 

<meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1" /> 
    <title> 
    </title> 
    <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/jquery.mobile-1.1.1.min.css" /> 
    <link rel="stylesheet" href="my.css" /> 
    <style> 
     /* App custom styles */ 
    </style> 
    <script src="cordova-2.0.0.js"> 
    </script> 
    <script src="js/jquery.min.js"> 
    </script> 
    <script src="js/jquery.mobile.js"> 
    </script> 
    <script src="my.js"> 
    </script> 

    <script> 

    $(document).ready(function(){ 

     $.support.cors = true; 
     $.mobile.allowCrossDomainPages = true; 

     //$("#ulCartelera").append('<li><a href="app.html" data-transition="slide" text="hola" > Prueba 1 </a></li>'); 
     //$("#ulCartelera").append('<li><a href="app.html" data-transition="slide" text="hola" > Prueba 2 </a></li>'); 
     $('#cargaDiv').html('<img src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.1.1/images/ajax-loader.gif" /> Cargando...'); // Loading message 


     $.getJSON("http://www.cinesimf.com/rss/JSONTorrevieja.php", 
       function(data){ 

      for (i=0;i<data.length;i++) 
       { 

       $("#ulCartelera").append('<li><a href="app.html" data-transition="slide" text="hola" >'+data[i].titulo+'</a></li>'); 

       } 
      $('#cargaDiv').html(''); //Remove Loading message 
      $("#ulCartelera").listview('refresh');  
     }) 


    }) 
    </script> 
</head> 
<body> 
<div data-role="page" id="cartelerafinestrat"> 
<div data-role="header"> 
<a href="app.html" data-icon="delete" data-transition="flow">Atras</a> 
<h1>IMF Finestrat</h1> 
</div> 
<div id="cargaDiv"> 

</div> 
<div id="cartelera"> 
<ul id="ulCartelera" data-role="listview" class="ui-listview" data-theme="d" data_dividertheme="b"> 


</ul> 
</div> 
</div> 
</body> 
</html> 
</pre> 

我在config.xml中添加(/ RES/XML /)我的域( 「http://www.cinesimf.com/*」)在PhoneGap的白名單。

如果我在我的電腦中的導航器中嘗試代碼,它工作正常,但在Android應用程序nenets加載。

回答

0

您的問題取決於一般的webkit(和現代瀏覽器)問題。 如果您想對跨域服務器執行json請求,則必須在Android或您的plist文件非Iphone上修改清單文件,並在允許的域中插入您想要獲取數據的域。 你也可以做一個JSONP請求,以避免清單更新:

$.getJSON("http://www.cinesimf.com/rss/JSONTorrevieja.php?callback=?", 
      function(data){ 

     for (i=0;i<data.length;i++) 
      { 

      $("#ulCartelera").append('<li><a href="app.html" data-transition="slide" text="hola" >'+data[i].titulo+'</a></li>'); 

      } 
     $('#cargaDiv').html(''); //Remove Loading message 
     $("#ulCartelera").listview('refresh');  
    }) 

你可以有大約JSONP有一個很好的解釋:http://www.ibm.com/developerworks/library/wa-aj-jsonp1/