Flash跨域解决

1,场景描述

项目部署在两个不同的域上,分为app项目 和 repository项目 简称 A 和 R 。

在A上使用jquery uploadify 做上传,远程连接到 R上,因为表单是属于 A 域的 ,flash swf 这样的上传存在沙箱安全问题,不允许直接上传到 R上进行操作。

2,解决办法

项目是部署在 tomcat下的,找到tomcat的部署文件,webapps/ROOT 在这里加入 一个 crossdoamin.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>  
    <site-control permitted-cross-domain-policies="all" />  
    <allow-access-from domain="*" />  
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

3,详解

crossdomain.xml 是 Adobe提出的flash swf 跨域解决方案。

<allow-access-from doamin="*"/> 表示允许任意域的请求在本域提取数据,其中 * 可为域名可为 ip,当为ip时不允许使用通配符,为域名时 最后必须以 .xx结尾 如 aa.com 自动匹配 *.aa.com

另外如果crossdoamin.xml位于 https服务器时,建议将请求域配置成Https 。 强烈不建议开启 <allow-access-from domain="*" secure="false"/> secure 默认为true。

<allow-http-request-headers-from domain="*" headers="*"/> 允许向本域中发生request 头信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值