让我的jQuery Ajax的脚本中使用CORS(Make my jQuery Ajax scrip

2019-09-17 17:44发布

我建立了一个应用程序,它从外部网站通过读取数据AJAX。 它工作正常,但我在另一个发现的问题 ,如果我想将它打包黑莓7,用的WebWorks或PhoneGap的,我可能需要使用一种叫做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>

Answer 1:

你可能打从其它域名的域名(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     
});


Answer 2:

你可以在jQuery的特别是与开启CORS

$.support.cors = true;

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

<access uri="*" /> 

或至少

<access uri="ontariosheep.com" />


文章来源: Make my jQuery Ajax script use CORS