0

我在 flash ide / as3 中拼凑了一个简单的应用程序,该应用程序可以从四方位置提取照片。它在本地工作,但一旦部署在网络上,它就不起作用了。我猜这是一个跨域问题,但到目前为止我在网上找到的(下面的链接)并没有回答我的问题。 http://groups.google.com/group/foursquare-api/browse_thread/thread/ab963f74fde8ae9f/3e68559966acf7c9

我检查了本地与网络设置。我读过我的服务器上不需要跨域文件。而且我相信我已经读过,我不应该像我在 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;            
     }
4

1 回答 1

0

经过一番大惊小怪,我可以让它工作的唯一方法是,是的,使用带有foursquare api的跨域代理php文件。

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

于 2012-05-17T23:48:06.767 回答