2

我构建了一个应用程序,它通过 AJAX 从外部网站读取数据。它工作正常,但我在另一个问题中发现,如果我想用 Webworks 或 Phonegap 为 BlackBerry 7 打包它,我可能需要使用名为CORS的东西。

除了使用“CORS”之外,我如何转换我的以下脚本来做同样的事情?

    <script type="text/javascript">
        $("#page_all").live('pagebeforecreate', function() {
        $.get('http://mysite.com/mobile/data/data_all.php',function(data){
            $('.content').empty();
            $(data).find('market').each(function(){
                var $market = $(this);
                var html = '<div class="data">';                      
                html += '<div data-role="collapsible" data-collapsed="true" data-theme="b"><h3>' + $market.attr('date') + '</h3>';
                html += '</div>';
                $('#result').append(html).trigger( "create" );
                $('#result .loading').remove();
            });                        
        });
        });
    </script>
4

2 回答 2

4

您可能正在从其他域名访问域(ontariosheep.org),这会将跨域带入投票。

CORS 只是解决此问题的一种方法,它必须是您的服务器,data_all.php需要将主机设置为在响应标头中也具有以下属性:

Access-Control-Allow-Origin: *

或者,您可以使用另一种称为JSONP的常用方法。

使用 JSONP 方法,您的调用应如下所示:

var url = "http://ontariosheep.org/mobile/data/data_all.php";
$.get(url + "?callback=?", function(data) {
    // your method body     
});
于 2012-06-04T13:12:19.333 回答
-2

您可以在 jquery 中专门打开 CORS

$.support.cors = true;

此外,请确保正确配置您的小部件配置(config.xml)并添加

<access uri="*" /> 

或者至少

<access uri="ontariosheep.com" />
于 2012-06-11T15:52:51.353 回答