所以我已经尝试了几乎所有我能想到的方法,要么在离线模式下测试时获得 404 状态,要么在在线测试时获得安全沙箱错误。我正在尝试使用 7.html 从广播页面中获取数据,以便快速访问统计信息。我正在测试的页面是http://37.58.52.41/7.html
注意:我尝试了获取广播数据的 netstream 方法,但也没有成功。
所以我已经尝试了几乎所有我能想到的方法,要么在离线模式下测试时获得 404 状态,要么在在线测试时获得安全沙箱错误。我正在尝试使用 7.html 从广播页面中获取数据,以便快速访问统计信息。我正在测试的页面是http://37.58.52.41/7.html
注意:我尝试了获取广播数据的 netstream 方法,但也没有成功。
正如@Aralicia 指出的那样,您需要在服务器上设置一个跨域策略,以允许 Flash 从中提取信息。
跨域策略文件是一种 XML 文档,它授予 Web 客户端(例如 Adobe Flash Player 或 Adobe Acrobat)(尽管不一定限于这些)处理跨域数据的权限。当客户端请求托管在特定源域上的内容并且该内容发出指向其自身域以外的域的请求时,远程域需要托管一个跨域策略文件,该文件授予对源域的访问权限,从而允许客户端继续交易。
也许下面的代码会有用:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, urlloaderCallback);
var header:URLRequestHeader = new URLRequestHeader("pragma", "no-cache");
var request:URLRequest = new URLRequest("http://37.58.52.41/7.html");
request.requestHeaders.push(header);
loader.load(request);
}
public function urlloaderCallback(event:Event):void{
//<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>531,1,893,1000,528,192,We aRe oNe</body></html>
var get:String = event.currentTarget.data;
}
]]>
</mx:Script>
</mx:Application>
这段代码完美运行,检查下面的评论public function urlloaderCallback
,有 URLLOAD 调用返回的 HTML。