我在 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;
}