2012-05-17 38 views
0

我将一个简单的应用程序放在闪存ide/as3中,从四方位置拉取照片。它在本地工作,但一旦部署在网络上,它不起作用。我想这是一个跨域问题,但我在网上找到的(下面的链接)迄今没有回答我的问题。 http://groups.google.com/group/foursquare-api/browse_thread/thread/ab963f74fde8ae9f/3e68559966acf7c9Foursquare API请求在部署后无法正常工作,跨域问题?

我检查了本地vs网络设置。我读过了我不应该在我的服务器上需要跨域文件。 我相信我已经读过,我不应该需要像我需要与Twitter的Foursquare的PHP代理... 不知道还有什么可以。

这个盒子里面说测试应该跟踪响应,但它永远不会被填充,就好像呼叫在它碰到了foursquare上的跨域文件后停在它的轨道上,我甚至不会收到错误响应。 http://physicalgraffitea.com/wp-content/swf/Foursquare-e.swf

把AS3蒸馏到这里最瘦,没有ID和秘密。

任何帮助?由于

Security.allowDomain("http://www.foursquare.com"); 
    Security.loadPolicyFile("http://api.foursquare.com/crossdomain.xml"); 

     import flash.net.URLRequest; 
     import flash.net.URLLoader; 
     import com.adobe.serialization.json.JSON; 

     var resource = "https://api.foursquare.com/v2/venues/4b7071c8f964a520d51a2de3/photos?group=venue&limit=6&client_id="+myId+"&client_secret="+mySecret+"&v=20120517"; 


     var loader:URLLoader = new URLLoader(); 
     var request:URLRequest = new URLRequest(resource); 
     request.method = URLRequestMethod.GET; 
     loader.addEventListener(Event.COMPLETE, onComplete); 
     loader.addEventListener(IOErrorEvent.IO_ERROR,onIOError); 
     loader.load(request);   

    function onComplete(e:Event):void { 
        var loader:URLLoader = URLLoader(e.target); 
        outputtxt.text = loader.data; 
        trace(loader.data); 
        var jsonData:Object = JSON.decode(loader.data) 
     } 
    function onIOError(e:Event):void { 
      var loader:URLLoader = URLLoader(e.target); 
      outputtxt.text = "error " + loader.data;    
    } 
+0

更正您的服务器上不需要crossdomain.xml文件;这只会让其他地方的Flash应用能够与您的网站进行双向互动。 – Cheekysoft

回答

0

很多周围,我可以得到它的工作的唯一办法大惊小怪后是肯定的,使用的跨域代理PHP文件与Foursquare API。

但这并不能解决我的问题,swf需要使用完整的http路径引用,但路径中没有“www”。 “http://mydomain.com/swf/file.swf” 不确定为什么,但如果您有类似的跨域问题,请尝试删除www。