导航

yaosansi's Blog

当你背向太阳的时候,你只会看到自己的阴影!能力是有限的,努力无限的!

« Vista/Win2008 中使IIS7支持PHP.NET中如何分解和合成Gif图像 »

Flash跨域调用WebService

  • 本站大部分内容从网上收集,收集目的仅供研究、学习。涉及版权或不希望收录您的文章请您及时与我联系。
  • 本站IM群,请自行选择。请各位朋友按照自己喜好加入。加入群后请及时发言,防止被清理。谢谢您的合作!!!
  • QQ群:Y①WEB开发(ASP.NET)号码:7351660 QQ群:Y②WEB开发(ASP+.NET)号码:11864905
  • QQ群:Y③WEB开发(DIV+CSS)号码:16610506 QQ群:Y④WEB开发(JS+AJAX)号码:16143998
  • QQ群:Y⑤WEB开发(新手)号码:12777715 MSN群:yaosansi[at]126.com

使用crossdomain.xml让Flash可以跨域传输数据

crossdomain.xml文件格式

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

试例1:

<?xml version="1.0"?> 
<cross-domain-policy> 
  <allow-access-from domain="www.AAA.com" /> 
  <allow-access-from domain="*.AAA.com" /> 
  <allow-access-from domain="105.216.0.40" /> 
</cross-domain-policy>

试例2:允许任何域的访问

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

 

如果使用XMLSocket要把端口号加上

<cross-domain-policy>
<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="202.117.80.2" to-ports="*" />
</cross-domain-policy>


如果安全策略文件放在根目录,文件名字必须为crossdomain.xml,如果不放在根目录,要用

System.security.loadPolicyFile(http://webservice.yaosansi.com/crossdomain.xml  )

这样的方法加载安全策略文件。

 

 

对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!

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

on (release) { 
    var myvar = new LoadVars(); 
    myvar.t = t2.text; 
    myvar.sendAndLoad("http://www.163.com/test.asp",myvar,"post"); 
    myvar.onLoad = function(re){ 
        if(re){ 
            t1.text = myvar.t; 
        }else{ 
            t1.text = "fail..."; 
        } 
    } 
}

2.test.asp代码:

<% 
Dim t 
t = Request.form("t") 
Response.write("t=" & t & " back!") 
%>

 

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

原创文章如转载,请注明:转载自http://www.yaosansi.com
订阅本站,阅读更多文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog .Theme from Google黑板报 By Washun

Copyright 2005-2008 yaosansi'site All Rights Reserved.

感谢Denny·G 为本站提供FTP空间
辽ICP备05021434号

Search

  •  

赞助商广告

控制面板

最新评论及回复

最近发表