部署后,Foursquare API请求无法正常工作,跨域问题?

时间:2012-05-17 13:26:27

标签: actionscript-3 security api foursquare

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

我已经检查了本地vs网络设置。我已经读过我不应该在我的服务器上使用跨域文件。 而且我相信我已经读过我不需要像我需要的那样用于foursquare的php代理... 不确定它还能是什么。

它所说的测试框应该跟踪响应,但它永远不会填充,就像在foursquare上遇到crossdomain文件后调用停止在其轨道上,我甚至没有得到错误响应。 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;            
     }

1 个答案:

答案 0 :(得分:0)

经过大量的烦恼之后我才能让它工作的唯一方法是,使用带有foursquare api的跨域代理php文件。

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