2

PhoneGap での 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>

phonegap ホワイトリストに自分のドメイン ("http://www.cinesimf.com/*") を config.xml (/res/xml/) に追加しました。

PC のナビゲーターでコードを試してみると問題なく動作しますが、Android アプリケーションではロードされません。

4

1 に答える 1

0

あなたの問題は、一般的な Webkit (および最新のブラウザー) の問題に依存しています。クロスドメイン サーバーに対して json 要求を実行する場合は、Android のマニフェスト ファイルまたは Iphone 以外の plist ファイルを変更して、データを取得する許可されたドメインを挿入する必要があります。マニフェストの更新を避けるために、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/

于 2012-09-10T00:17:29.717 に答える