最近遇到了flash的万年老梗,跨域访问的问题。之前一直没有处理过这类问题,是因为做项目的时候别人已经处理好了。真到自己遇到的时候,还是很费脑筋的。

1遇到的问题

客户端发布到网页的时候,socket连接服务器的时候,抛出SecurityErrorEvent.SECURITY_ERROR错误,security error #2048。

2网上搜索问题

网上很多人遇到这种问题,不用谷歌都能搜索到一大堆相关网页。
http://stackoverflow.com/questions/14634366/how-can-i-fix-a-flash-security-error-2048
http://blog.csdn.net/zhytry/article/details/50963919
http://blog.csdn.net/summerhust/article/details/7721627
http://blog.163.com/cmdbat@126/blog/static/1702921232014112433238426/
http://stackoverflow.com/questions/5435495/flash-security-error-2048-is-there-a-workaround-or-does-twilio-have-to-change
http://www.myexception.cn/flex/1550618.html
http://www.senocular.com/pub/adobe/crossdomain/policyfiles.html
http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html
http://blog.sina.com.cn/s/blog_534d8f9c0100a29d.html
http://bbs.9ria.com/forum.php?mod=viewthread&tid=60441
http://bbs.9ria.com/forum.php?mod=viewthread&tid=82127
http://smartblack.iteye.com/blog/1128154
http://blog.csdn.net/leinchu/article/details/9254743

3解决问题

归根到底就是安全策略文件问题,默认的安全策略文件是crossdomain.xml。但是我的服务器的根目录是有这个文件的,而且为了方便测试,配置的都是"*",全部都允许。这篇文章http://smartblack.iteye.com/blog/1128154给了我很大帮助

从一些官方的一些资料中了解了一下。以前的Flash Player无论你采用urlRequest的http请求方式或者xmlsocket socket方式,他们都共用一个安全策略文件。这个策略文件只要你放在主域的目录下就行了。而现在不行了,现在的策略文件如果你使用http请求方式那么需要把策略文件放在目录下面,如果你使用socket请求方式就必须通过socket端口来接收这个策略文件。
对应调用的方式为:
http请求——》Security.loadPolicyFile(“http://www.xxx.com/crossdomain.xml”)
socket或xmlsocket请求——》Security.loadPolicyFile(“xmlsocket://www.xxx.com:port”)
 所以上述第二步中用的HTTP请求方式是无效的~
参考Flash Socket通信的安全策略问题 843端口(转载)
  socket安全策略的问题

意思就是说如果你是使用socket连接服务器,那你使用Security.loadPolicyFile("http://xxx.xxx.xxx.xxx/crossdomain.xml")这种方式来请求策略文件是无效的,因为你这种请求策略文件走的是http协议,而socket用的tcp协议。所以无效。为了验证这个问题,我使用wireshark抓包来验证一下这个问题

服务器挂了,待截图

flash跨域访问,crossdomain.xml,error #2048的更多相关文章

  1. Flash跨域传输数据 crossdomain.xml

    一.概述位于www.a.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功:若crossdo ...

  2. flash跨域访问

    -------------------------------------------------------背景------------------------------------------- ...

  3. 跨域文件crossdomain.xml在weblogic上的部署

    1.新建一个ROOT文件夹,把crossdomain.xml拷贝到这个文件夹下. 2.在ROOT文件夹下新建一个WEB-INF文件夹 3.在WEB-INF文件夹下建立一个weblogic.xml文件, ...

  4. 【转】silverlight 跨域访问

    作者:MIDI  来源:博客园  发布时间:2010-01-01 17:39  阅读:204 次  原文链接   [收藏]    在 Silverlight 使用 WebService .WCF.We ...

  5. SpringBoot 实现前后端分离的跨域访问(CORS)

    序言:跨域资源共享向来都是热门的需求,使用CORS可以帮助我们快速实现跨域访问,只需在服务端进行授权即可,无需在前端添加额外设置,比传统的JSONP跨域更安全和便捷. 一.基本介绍 简单来说,CORS ...

  6. 转载:flash 跨域 crossdomain.xml

    转载自http://hi.baidu.com/bozz_/item/e8b1c7c4ca31317489ad9e91 flash 跨域 crossdomain.xml 一.概述 位于www.cross ...

  7. flash跨域策略文件crossdomain.xml

    flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访问www. ...

  8. flash跨域策略文件crossdomain.xml配置详解

    来源:http://www.2cto.com/Article/201108/100008.html 0x01 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了 ...

  9. Flash完美跨域访问的方法

    先,你要确定以下几点,否则可能无法实现: 1.你要跨到哪个域,你必须能管理那域上文件,因为这里要放一个通行文件. 2.你的Flash如果只有SWF,那不一定能实现,因为有时,Flash的AS中,要加入 ...

随机推荐

  1. 常用vim插件的安装、使用和管理

      1.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或者其他工具用来快速查找定位源代码中的符号,入变量名,函数名等.比如,tags文件就是Taglist和 ...

  2. HTML5-本地存储与cookies

    一.H5的几种存储形式 1.本地存储(localstorage和sessionstorage) 存储形式:key-->value 过期策略:localstorage永久存储,不过期,除非手动删除 ...

  3. BUG-FREE-For Dream

    一直直到bug-free.不能错任何一点. 思路不清晰:刷两天. 做错了,刷一天. 直到bug-free.高亮,标红. 185,OA(YAMAXUN)--- (1) findFirstDuplicat ...

  4. python --enable-shared

    https://github.com/docker-library/python/issues/21 例如编译安装python3.5.2,脚本如下: wget https://s3.cn-north- ...

  5. 设计模式--桥接模式Bridge(结构型)

    一.概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或者多个维度的变化,如何应对这种"多维度的变化",就可以利用桥接模式. 引例: 设想如果要绘制矩形.圆形.椭圆.正方形,我 ...

  6. Linux下安装MongoDB

    MongoDB是一个C++编写的基于分布式文件存储的数据库,是一个介于关系和非关系之间的数据库,当然也属于NoSQL的行列,存储方式和Redis类似,是json格式的kav-value存储方式,只是R ...

  7. js随机生成颜色代码

    function generyRandomColor() { return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toStri ...

  8. Eclipse 增加php插件

    Eclipse 下载解压后运行, Help ------> Install New Software,在 Work whit 输入http://download.eclipse.org/tool ...

  9. javaEE基础08

    javaEE基础08 一.继承 特点:继承父类的属性和方法,单继承(多继承) 特性:方法的复写(重写) 比如:人可以养狗 人------>狗:整体和部分(拥有)关系 关键字:extends 结构 ...

  10. thinkPHP实现静态页的方法-buildHtml

    thinkphp全站静态页实现方法! 1:在根目录下的全局index.php中加下面这行: define('HTML_PATH', './htm');//生成静态页面的文件位置 2:在项目的配置文件c ...