关于flex的crossdomain.xml文件存放目录

最近在项目中遇到flex跨域访问的安全沙箱问题,查资料了解到需要在服务端加上crossdomain.xml文件,即:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

但对于具体存放在web服务的那个目录下,一直困惑不已,最终发现,这需存放在你服务器的默认站点目录下,一般情况下,目录站点都是Root;tomcat中存放在

webapps/ROOT/ 下,即所谓的根目录;jboss存放目录也很类似,也是放在默认站点root目录下,以我机器为例,存放在:C:\jboss-4.0.5.GA\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war中的Root.war中;

倘若你的tomcat 或者jboss中没有默认站点Root,那crossdomain.xml需要放在哪里呢?

两种处理办法:1.拷贝一个Root站点到你的tomcat或者jboss中,再在其中加入crossdomain.xml;

2.如果你的tomcat或者jboss的默认站点已经设置成了其他的应用,则你需要将crossdomain.xml放置到这些个具体的默认站点中去;

一言以蔽之,crossdomain.xml需要存放在你默认站点的根目录下,检验你的crossdomain.xml是否放置正确,你可以通过用http://domainname/crossdomain.xml这种方式访问即可(切记不要加应用名),以我机器为例:

http://127.0.0.1:8080/crossdomain.xml,如果可以访问到到该xml 就可以了。

当然在这个过程中我不得不再提醒你一个很值得你注意的地方:在做所有工作之前请把你的浏览器缓存clear掉,因为我在实践当中该死的缓存几乎差点让我怀疑自己,差点让我不知所措!

ps: adobe默认的策略文件还提供了另一种访问机制,即他可以用Security.loadPolicyFile方法加载指定目录下的crossdomain,但是在某个版本后,就要求在服务器根目录下必须有crossdomain文件了,官方文档解释如下: 
SWF 文件可以通过调用 Security.loadPolicyFile() 方法检索其它策略文件名或其它目录位置。但是,如果主策略文件未指定目标位置能提供策略文件,则调用loadPolicyFile() 无效,即使该位置有策略文件。 
http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html

因此,如果你的站点访问存在安全沙箱问题,无论如何你的默认站点下都需要放置crossdomain.xml

时间: 2024-08-22 12:35:10

关于flex的crossdomain.xml文件存放目录的相关文章

关于跨域策略文件crossdomain.xml文件

下载flexpaper源码修改后做成swf阅读器,要加入待阅读的swf文件,可以在flex里调用js的方法来获取swf文件的路径的方法,在js只专注获取路径就行,等着flex来调用:但这里会遇到一个问题那就是出现安全问题,如下的提示: Error #2044: 未处理的 onDocumentLoadedError:. text=Error #2048: 安全沙箱冲突:http://localhost:8080/UpLoadAndDownLoad/FlexPaper.swf 不能从 http://

MySQL DDL操作--------指定表数据文件存放目录最佳实战

1. 背景 * 在MYSQL中建立一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构. * MySQL文件包括MySQL所建数据库文件和MySQL所用引擎创建的数据库文件. * .frm 文件与操作系统和数据库引擎无关,都有这么

UEditor Flash文件上传-crossdomain.xml文件配置

在使用UEditor富文本时,如果客户端的浏览器是低版本浏览器,如IE7.IE8等,UEditor的文件上传方式将会使用flash方式上传而不是html5,而flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 从UEditor官方文档上看,如果使用flash方式上传文件,那么只需要设置如下即可: 但实际在IE7.IE8环境下该文件被正确请求到后仍然无法正确上传文件,而是报出“http请求错误”信息.

mysql 修改数据文件存放目录

1.停止mysql服务: 2.修改/etc/mysql/my.cnf datadir 修改为新的目录: 3. cp -r -P /var/lib/mysql 到新目录 (copy时加-P,保持文件属性不变): 4. 修改新的数据文件的属主为mysql chown -R mysql:mysql  /data/mysql/  (我新的数据文件放在了/data下面): 5.修改 /etc/apparmor.d/usr.sbin.mysqld 把下面这两行路径修改成新目录 /var/lib/mysql/

linux文件存放目录详解

/etc  存放各种配置文件 /etc/inittab   控制启动模式 [[email protected] ~]# cat /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /

更改 android 文件存放目录 getWritablePath() 为sdCard

CCFileUtils::sharedFileUtils()->getWritablePath() 默认为 /data/data/prjName/ "Java_org_cocos2dx_lib_Cocos2dxHelper.h"  的 std::string getFileDirectoryJNI() 方法 通过 jni 调用  org.cocos2dx.lib.Cocos2dxHelper.getCocos2dxWritablePath() 获取 具体"路径str&q

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

来源:http://www.2cto.com/Article/201108/100008.html 0x01 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访问www.b.com的文件时,SWF首先会检查www.b.com服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功:若crossdomain.xml文件存在,且里边设置

由crossdomain.xml安全策略文件引发的一些列安全问题

这是一起由crossdomain.xml安全策略文件引发的思考,不是馒头,也不是血案!!初识是在几年前刚接触Flex的时候,那会懵懵懂懂的解决问题,到如今与其打交道不计其数,这个大问题小问题都能轻松搞定,就是这样惬意的阳光午后,我高高兴兴的写着代码,排着工期,整理文档,计划着今天又可以回家吃饭的时候,收到一封邮件,一封关于部署在都快被忘记的服务器上的flash跨域安全漏洞,要求紧急修复. 擦,what?这不是在搞笑吧,这尼玛是啥?这又什么东东?丈二和尚摸不着头脑,安全漏洞?于是果断的查找服务器策

dede织梦CMS文件夹目录结构

本文主要是为了今后对Dedecms做二次开发所写.安装后dedecms的目录,如(图1)所示, 图1-文件根目录 “a”:  默认HTML文件存放目录 “data”: 系统缓存或其它可写入数据存放目录 “dede”: 默认后台管理目录 “images”: 系统默认模板图片存放目录 “include”: 类库文件目录 “install”: 安装程序目录,安装完后可删除 “member”: 会员目录 “plus”: 附助程序目录 “special”: 专题目录 “templets”: 系统默认内核模