Flash/ActionScript 解决跨域问题的策略文件crossdomain.xml的写法

本文主要是介绍Flash/ActionScript 解决跨域问题的策略文件crossdomain.xml的写法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在做视频截图的时候遇到了 Flash 安全沙箱 错误,到网上找了很多方法,弄了半天,搞得心烦意乱,最后才解决。在这里记下来。


使用 BitmapData.draw Flash弹出这个错误
SecurityError: Error #2123: 安全沙箱冲突:BitmapData.draw: xxx.swf 不能访问 null。未被授权访问任何策略文件。


解决方法:(反正我是这样解决了)

1,修改 crossdomain.xml 代码如下。(注:网上很多方法没有在xml根上加 encoding ,我是加上后 才解决的。)
这个写法 对于Flash11 以上的版本  绝对错不了,也不会漏。


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


2,在舞台创建的时候加入这几行。

Security.allowDomain("*")
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://xxxx/crossdomain.xml");



3,把crossdomain.xml 另存为 无BOM 的 utf-8 格式。
附录:没解决前,我用 finfo_file 打印 crossdomain.xml。结果为:application/xml; charset=us-ascii。
看到 charset=us-ascii 后,马上把crossdomain.xml 另存为utf-8 ,问题 就解决了!


也就是说 flash 读取 crossdomain.xml ,在解释 服务器 发回来的 cross-domain-policy 字节流时,处理 其 编码 是有关系的!
如果 你的web服务器较为古老,也许需要 加入 mime 以应对 crossdomain.xml 的请求!

<mime-mapping>
    <extension>xml</extension>
    <mime-type>application/xml</mime-type>
</mime-mapping>


就是Content-Type 必需返回 application/xml。

或者,直接 把 crossdomain.xml  改为 txt ,crossdomain.txt 。




回过头来,说一下 : 安全沙箱冲突:BitmapData.draw: xxx.swf 不能访问  的问题。

如果NetStream是用生成模式创建视频,也就是 使用了 appendBytes 函数,那么 ,这个 Video 是 不能 draw 的。。。





这篇关于Flash/ActionScript 解决跨域问题的策略文件crossdomain.xml的写法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173951

相关文章

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Python实现阶乘的四种写法

《Python实现阶乘的四种写法》本文主要介绍了Python实现阶乘的六种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录第一种:推导式+循环遍历列表内每个元素相乘第二种:调用functools模块reduce的php累计

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言