`
NewTamato
  • 浏览: 101080 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

flash跨越问题的问题总结

阅读更多

1.被调用数据端服务器使用策略文件。
将策略文件放置在被调用数据端服务器的根目录下。
domain="*" 为被允许连接的域(子域)。

*如果策略文件为非默认目录(服务器根目录),动作脚本可以使用 System.security.loadPolicyFile 向 Flash Player 通知非默认的策略文件位置。例如:

System.security.loadPolicyFile("http://foo.com/sub/dir/pf.xml");

这会导致 Flash Player 从该指定的 URL 中检索策略文件。由这一位置的策略文件授予的权限将应用于该服务器的虚拟目录分层结构中同一层及以下各层中的所有内容。
所以,续上例,以下几项成立:

允许 loadVariables("http://foo.com/sub/dir/vars.txt")
允许 loadVariables("http://foo.com/sub/dir/deep/vars2.txt")
不允许 loadVariables("http://foo.com/elsewhere/vars3.txt")

*一种新的语法允许直接从 XMLSocket 服务器中检索策略文件:

System.security.loadPolicyFile("xmlsocket://foo.com:414");

Flash Player 将会尝试从该指定的主机和端口中检索策略文件。可使用任何端口,而不仅限于 1024 及以上的端口。

*由 XMLSocket 服务器提供的策略文件使用与其他任何策略文件都相同的语法,唯一不同之处是它还必须指定授予对哪些端口的访问权。当一个策略文件来自低于 1024 的某一端口时,它可以授予对任何端口的访问权;当一个策略文件来自 1024 或更高的端口时,它只能授予对 1024 及更高端口的访问权。允许的端口在 <allow-access-from> 标记中的“to-ports”属性中指定。允许单个的端口号、端口范围和通配符。下面是 XMLSocket 策略文件的示例:

<cross-domain-policy>
<allow-access-from domain="*" to-ports="507" />
<allow-access-from domain="*.foo.com" to-ports="507,516" />
<allow-access-from domain="*.bar.com" to-ports="516-523" />
<allow-access-from domain="www.foo.com" to-ports="507,516-523" />
<allow-access-from domain="www.bar.com" to-ports="*" />
</cross-domain-policy>

自旧的默认位置 — 端口 80 上的一个 HTTP 服务器上的 /crossdomain.xml - 获得的策略文件隐式授予对 1024 及以上所有端口的访问权。无法从 HTTP 服务器上的任何其他位置检索一个策略文件来对 XMLSocket 操作授权;XMLSocket 策略文件的任何自定义位置都必须在 XMLSocket 服务器上。

因为连接到低于 1024 的端口的这一能力是新增的,所以对连接进行授权总需要用 loadPolicyFile 加载的一个策略文件,即使在影片连接到自己的子域时也是如此。

2.Web脚本代理 (Server-side proxy method):
*ColdFusion | PHP | ASP | JSP

以上 脚本文件 必须和 Flash 放在同一个域的URL中才能正常使用。
将 脚本文件 中的URL换成你自己的URL,然后在用 Flash 来调用。

 

 

 

 

 

第二种更为详细也简单一些,如下:

一、概述

位于www.mzwu.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.mzwu.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。

二、crossdomain.xml文件格式

crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:

程序代码<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="www.friendOfFoo.com" />
   <allow-access-from domain="*.foo.com" />
   <allow-access-from domain="105.216.0.40" />
</cross-domain-policy>

程序代码<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="*" />
</cross-domain-policy>

第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics