让我的jQuery Ajax脚本使用CORS

让我的jQuery Ajax脚本使用CORS,jquery,xmlhttprequest,blackberry-webworks,cors,Jquery,Xmlhttprequest,Blackberry Webworks,Cors,我构建了一个应用程序,通过AJAX从外部网站读取数据。它工作得很好,但我在另一篇文章中发现,如果我想用Webworks或Phonegap为BlackBerry 7打包,我可能需要使用一种叫做 除了使用“CORS”之外,我如何将下面的脚本转换为执行相同的操作 <script type="text/javascript"> $("#page_all").live('pagebeforecreate', function() { $.get('htt

我构建了一个应用程序,通过AJAX从外部网站读取数据。它工作得很好,但我在另一篇文章中发现,如果我想用Webworks或Phonegap为BlackBerry 7打包,我可能需要使用一种叫做

除了使用“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>

$(“#page_all”).live('pagebeforecreate',function(){
$.get('http://mysite.com/mobile/data/data_all.php,函数(数据){
$('.content').empty();
$(数据)。查找('market')。每个(函数(){
var$市场=$(本);
var html='';
html+=''+$market.attr('date')+'';
html+='';
$('#result').append(html).trigger(“create”);
$('#result.load').remove();
});                        
});
});

您可能是从其他域名访问了域名(ontarioseep.org),这就把跨域名纳入了调查范围

CORS只是解决这一问题的一种方法,它必须是承载
data\u all.php
的服务器,该服务器需要设置为在响应头中也包含以下属性:

Access-Control-Allow-Origin: *
或者,您可以使用另一个名为的常用方法

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

var url = "http://ontariosheep.org/mobile/data/data_all.php";
$.get(url + "?callback=?", function(data) {
    // your method body     
});

您可以在jquery中专门使用

$.support.cors = true;
另外,确保正确配置小部件配置(config.xml)并添加


或者至少

<access uri="ontariosheep.com" />


我已经添加到data_all.php您可以使用Fiddler或其他嗅探器查看标头是否正确传递吗?您使用JSONP只是为了尝试一下吗?另外,你应该传递一个JSON字符串而不是XML数据才能成功工作,我曾经在传递XML数据而不是JSON时遇到编码问题。我下载了Fiddler,但不确定如何检查。代码在大多数情况下都能工作,只有当我将其转换为BlackBerry应用程序时,它才无法工作。这就是使用Fiddler查看标题的方式:-虽然可以。也可能需要允许特定的标题和/或凭据(在PHP中):
标题(“访问控制允许标头:SOAPAction、SOAPServer、内容类型、授权、方法”);标头(“访问控制允许凭据:true”);
您的软件包引擎是什么?PhoneGap?Titanium?已使用WebWorks和PhoneGap,每个软件包引擎的结果为
$。支持。cors
检查支持;它未启用它。
<access uri="ontariosheep.com" />