0

データベースから json データを要求する小さなスクリプトがあります。コードはこちら

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    $(document).ready(function() {
        var keyword = "1";
         var baseurl1 = "json_data2.php?l=" + keyword;
        // Product Count 
        var json = (function() {
            var json = null;
            $.ajax({
                'async': false,
                'global': false,
                'url': baseurl1,
                'dataType': "json",
                'success': function(data) {
                    json = data;
                }
            });
            return json;
        })();
        console.log(json);

    });
});
</script>

私のフィードがこのように見えるとき

{"limit": [{"rows":"127"}]}

コンソールに「Object {limit: Array[1]}」と表示されます。だから言葉のようです。また、json.limit[0].rows をアラートして、127 を表示することもできます。ここまでは順調ですね。

このようなデータの別のフィードを取得しようとすると

{"posts": [{"productname":"Das kleine Ich bin ich","link":"if3OHlvncaIY7A7VGze7VSIeAAZAIZV83cvaG%2B5w3U48cuooMp9qZZJkdQzwyGEXgk8LCR9kD7nY6Y%2FSR0RnjRJo44jHguoaesLAa4mLhuKpuLsfty85ZaePH%2FHReJTc","imgurl":"img\/products\/mytoys\/das-kleine-ich-bin-ich.jpg","price":"13.90","oldprice":"","sale":""},]}

コンソール ログに「null」が表示されます。問題は何ですか?つまり、コードは何も変更せず、URL だけを変更します。データフィードは JSON で、ブラウザでデータフィードにアクセスしたところ、正しく表示されました。ポインタはありますか?

4

1 に答える 1

2

console.log は、その行が実行されたときに ajax の実行がまだ終了していないため、null をログに記録し、コンソール ログ、および ajax 呼び出しによって返されたデータで実行したいことはすべて、成功のコールバック内にある必要があります。

于 2012-12-06T18:53:46.723 に答える