0

我正在尝试使用带有 jQ​​uery 的 JSONP 从服务器解析 JSON。下面的代码与 PhoneGap 一起使用,用于使用 HTML 创建 Android 应用程序。例如,当我在 Safari 中使用下面的代码时,它可以正常工作,但如果手机有间隙,它就无法正常工作!

有人知道发生这种情况的原因吗?

<!DOCTYPE HTML>
<html>
<head>
    <title>PortalARP</title>
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script>
    <script>

        $(document).ready(function () {
            $("#conteudoArea").append("<ul></ul>");
            $.ajax({
                url: 'http://portalarp.com.br/portal/produto/gerar_json?id_categoria_pai=56',
                dataType: 'jsonp',
                crossDomain: true,
                jsonp: false,
                jsonpCallback: 'jsonFlickrFeed',
                success: function (d) {
                    $('#title').text(d.id_produto);

                    var i, l = d.items.length, newLi, newItem;

                    $('<ul id="photoList"></ul>').appendTo('#main');

                    for (i = 0; i < l; i++) {
                        newLi = $('<li></li>');
                        newItem = d.items[i];

                        $('<h2>' + newItem.nm_produto + '</h2>').appendTo(newLi);
                        $('<h3>' + newItem.nm_marca + '</h3>').appendTo(newLi);

                        newLi.appendTo('#photoList');

                    }
                }
            });
        });


    </script>

</head>
<body>

    <div id="main"></div>

</body>

4

2 回答 2

0

将网址列入白名单res/xml/cordova.xml,它应该可以工作。

<access origin="http://portalarp.com.br" />

有关更多详细信息,请查看文档:

http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

于 2012-07-09T14:12:41.180 回答
0

我会根据jquery 移动文档检查您的设置中的 $.support.cors 和 $.mobile.allowCrossDomainPages 是否都是真的。

于 2012-07-06T22:58:50.773 回答