是否可以从Google Maps API加载外部XML文件而不会收到安全沙箱错误?
目前我正在使用代理,但这并不理想,因为所有API调用都将来自代理的IP而不是用户。
这是测试脚本:
Security.loadPolicyFile("https://maps.googleapis.com/crossdomain.xml");
Security.loadPolicyFile("https://maps.google.co.uk/crossdomain.xml");
Security.loadPolicyFile("http://maps.googleapis.com/crossdomain.xml")
Security.allowDomain("*.googleapis.com");
Security.allowDomain("*.google.co.uk");
var xmlString:String ='http://maps.google.co.uk/maps/geo?q=Slack Head LA7 7AX, United Kingdom&output=xml';
var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest(xmlString));
我基本上放弃了所有的希望,我浪费了几个小时。您无法加载外部XML / RSS源似乎很奇怪?
答案 0 :(得分:0)
无法直接从Flash访问XML文件而不会导致跨域脚本错误。
但是,Flash会让您直接访问图片和mp3等,这样您就可以调用Google的静态街景并映射API来获取图片,但是获取数据是另一回事。
有些网站支持JSONP,这意味着您可以使用JavaScript(使用jQuery库)来检索JSON / XML数据并将其传递给Flash对象。
Google Maps API不支持JSONP。
因此,您需要做的是在HTML中包含JavaScript Google Maps API 3库,然后从Flash调用JavaScript函数(使用ExternalInterface)从Maps API获取数据,然后您需要传递检索到的数据回到Flash。