Flex跨域访问的问题,请求高手解惑
我再域名为A的底下有一个Flex+java做的上传文件的例子,然后把Flex生成的那个上传用的的Flash文件被域名为B的工程里的页面通过<object id="MyFlexApp" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="400" align="middle"></object>方式引进去,然后再B得里面进行上传操作,当然上传的内容是传到了域名A的服务器里面。可以我上传的时候报"securityError bubbles=false cancelable=false eventPhase=2 text=error#2049"的错误,怎么解决这个跨域访问的问题?头都快大了。
很诡异的是,我做完以后在本机的tomcat6.0上运行的话,我本机上传文件没问题,别人的电脑连接我的服务器地址然后上传他本机的文件就报上面的那个错误。我们都是用的 flash playe10
[解决办法]
debug后有个文件crossdomain.xml
像下面那样修改
<?xml version="1.0" ?>
- <cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
[解决办法]
public function upload():void{
var request:URLRequest = new URLRequest("http://localhost:8080/upload/servlet/Upload");
var len:int=fileList.length;
index=len-1;
if(len>0){
for(var i:int=0;i<len;i++){
file = FileReference(fileList[i].fileRefrence)
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(Event.COMPLETE, complete_file);
file.upload(request);
}
}
}
[解决办法]
1. Flash 加载的时候 制定 allowNetwork
2. 如果是HTTP方式, 必须将crossdomain.xml放在目标网站的根目录下,不是你自己的网站