使我的jQuery Ajax脚本使用CORS
我构建了一个从外部网站通过AJAX读取数据的应用程序。 它工作正常但我在另一个问题中发现,如果我想将它打包为BlackBerry 7,使用Webworks或Phonegap,我可能需要使用一种叫做CORS的东西。
除了使用“CORS”之外,如何将以下脚本转换为相同的内容?
$("#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 = ''; html += '' + $market.attr('date') + '
'; html += ''; $('#result').append(html).trigger( "create" ); $('#result .loading').remove(); }); }); });
你可能正在从其他域名进入域名(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 });
你可以专门用jquery打开CORS
$.support.cors = true;
此外,请确保正确配置窗口小部件配置(config.xml)并添加
或至少