欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Flash跨域访问

程序员文章站 2022-07-14 10:14:30
...

 

一、概述

位于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文件存放位置,建议将其存放于站点根目录中!

三、示例

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!")
%>



 【转自:http://www.mzwu.com/article.asp?id=975