最近遇到了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. BZOJ 3288: Mato矩阵

    Description 一个 \(n*n\) 行列式,\((i,j)=gcd(i,j)\) Sol 线性筛. 这道题神奇的筛出来 \(phi\) ... 打表可以发现,一个数会被他所有的因子减掉因子的 ...

  2. JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)

    大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...

  3. Python之str()与repr()的区别

    Python之str()与repr()的区别 str()一般是将数值转成字符串,主要面向用户.  repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思.如list, ...

  4. sql跨库查询

    ---------------------------------------------------------------------------------- --1. 创建链接服务器 --1. ...

  5. lanmp之一 (动静分离)

    一.lanmp--需求篇 1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache,nginx + php 2. 同时安装apache和nginx,其中nginx启动80端 ...

  6. Target runtime com.genuitec.runtime.generic.jee60 is not defined

    转载自:http://jingyan.baidu.com/article/d7130635338e3f13fdf47518.html 用eclipse加载别人的工程,报错Target runtime ...

  7. iOS企业分发证书制作

    自签名证书制作流程 打开终端,输入 openssl genrsa - ,生成名称为ca的秘钥 注:openssl生成的文件皆放在用户文档下(finder菜单栏'前往' - 电脑 -Macintosh ...

  8. JS截取,删除,替换字符串常用方法详细

    删除和替换是一样的,开始用的是,如果是删除就直接替换为空 arr="abc001abc002abc003" arr.replace('abc','123') 结果发现只能替换第一个 ...

  9. 响应者链条,如何获取最佳的点击view 以及内部实现

    事件的产生与传递 事件是如何产生与传递的? 当发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中. UIApplication会从时间队列中取出最前面的时间,并将事件 ...

  10. 1280*720P和1920*1080P的视频在25帧30帧50帧60帧时的参数