这是一个ActionScript 3问题......
我正在my.domainA上主持一个swf,我正在使用此代码从my.domainB请求jpg(当然我是在阻止域名):
var request:URLRequest = new URLRequest(result.image);
request.requestHeaders.push(header);
var context:LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);
content = new Loader();
content.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
content.load(request, context);
域B有一个跨域xml文件,如下所示:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>"
然而,我收到此错误:
“错误:[严格]忽略政策文件 由于内容类型错误导致my.domainB.com/crossdomain.xml “二进制/八位字节流”。请访问www.adobe.com/go/strict_policy_files 解决了这个问题。“
有谁知道如何解决这个问题?这是针对crosdomain.xml文件或我请求的jpg的错误内容类型吗?
任何帮助表示感谢。
答案 0 :(得分:0)
第一个猜测是您的跨域文件被拒绝,而不是jpg。
在您的代码中,我们看不到您的标头变量的内容......问题可能来自您的请求处理方式吗?
你尝试过更简单的方法吗? 就像是: var request:URLRequest = new URLRequest(result.image); var content:Loader = new Loader(); content.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageLoaded); content.load(request,new LoaderContext(true));
答案 1 :(得分:0)
我从来没有遇到过这个问题,但是这条消息似乎表明问题在于交叉域文件的内容类型错误(二进制/八位字节流而不是text / xml)。你能检查一下吗?一种简单的方法是使用firebug(或其他一些工具)查看响应头来加载xml。
顺便说一句,您正在加载图像。您可能已经意识到这一点,但以防万一:如果您不需要操纵图像像素数据,您可以在没有交叉域的情况下加载它。只是不要尝试从它创建一个BitmapData图像,也不要访问loader.content。通过加载器对象(即显示对象)将图像放置在显示列表上(或将其删除),并且可以像真实图像的“代理”一样。