尽管有crossdomain.xml,AS3加载程序会导致securityError#2044

时间:2012-03-06 18:29:27

标签: actionscript-3 flash cross-domain

我正在开发一个在线绘画应用程序。

应用程序swf以及后端服务器位于: http://217.150.244.137/Client.swf

还有一个位于根目录中的crossdomain.xml: http://217.150.244.137/crossdomain.xml

我从服务器加载画布图像,如下所示:

var _loader:Loader = new Loader();
//make sure it's really not comming from the cache
var urlRequest:URLRequest = new URLRequest(url+'?nocache=' + new Date().getTime());
var requestHeader1:URLRequestHeader = new URLRequestHeader("pragma", "no-cache");
var requestHeader2:URLRequestHeader = new URLRequestHeader("Expires", "Thu, 01 Jan 1970 00:00:00 GMT, -1");
var requestHeader3:URLRequestHeader = new URLRequestHeader("Cache-Control", "no-cache, no-store, must-revalidate");
urlRequest.requestHeaders.push(requestHeader1);
urlRequest.requestHeaders.push(requestHeader2);
urlRequest.requestHeaders.push(requestHeader3);
var context:LoaderContext = new LoaderContext(true);

_loader.load(urlRequest, context);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onDataLoaded);

但是,当从其他页面中删除时,swf不起作用

我得到了

Error #2044: SecurityErrorEvent unverarbeitet. text=Error #2170: Verletzung der Sicherheits-Sandbox: http://www.pictonauts.theaterspektakel.ch/Client.swf kann keine HTTP-Header an http://217.150.244.137/images/wall/4/img_-2_-1_4.jpg?nocache=1331058396137 senden.

我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:3)

首先,试试这个crossdomain.xml:

<?xml version="1.0"?>    
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all"/> 
    <allow-access-from domain="*" to-ports="*" secure="false" />
    <allow-http-request-headers-from domain="*" headers="*" secure="false" /> 
</cross-domain-policy>