• flash跨域访问,crossdomain.xml,error #2048


    最近遇到了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抓包来验证一下这个问题

    服务器挂了,待截图

  • 相关阅读:
    Socket通信的理解
    wpf listbox 内的内容显示问题,需要设置里面的itemsPresenter
    C#的两个大方向
    QT的安装和配置及helloqt程序的编写时遇到的问题
    华为交换机基础命令
    华为创建VLAN及VLAN间通讯
    powershell查询AD域账号详细信息
    Powershell从EXCEL导入大量用户
    映射网络驱动器
    域策略更新及导出
  • 原文地址:https://www.cnblogs.com/rainInSun/p/5799449.html
Copyright © 2020-2023  润新知