资源描述
J2EE 项目文件上传跨域问题及解决方法主要涉及普通的跨域问题和富文本flash跨域问题;目前问题已经通过以下两种办法进行了解决,并通过了安全测试: 一、普通文件上传跨域问题解决方法:COR 是页面层次的控制模式。每一个页面需要返回一个名为Access-Control-Allow-Origin的HTTP头来允许外域的站点访 问。在文件上传服务器端增加跨域拦截器设置,首先在WEB.XML配置 拦截器,与普通拦截器配置方法一样,在拦截器中增加如下代码:HttpServletResponse _response = (HttpServletResponse) response;_response.setContentType(text/html;charset=UTF-8);_response.setHeader(Access-Control-Allow-Origin,*);_response.setHeader(Access-Control-Allow-Methods,POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age,0);_response.setHeader(Access-Control-Allow-Headers,Origin, No-Cache, X-Requested-With, If-Modified-Since,Pragma, Last-Modified, Cache-Control, Expires, Content-Type,X-E4M-With,userId,token);_response.setHeader(Access-Control-Allow-Credentials,true);response.setHeader(XDomainRequestAllowed,1);参见下图标注区域代码:taiB.uriFilaLiaHLaiim iHLvir LHBEiiilntaMLiiriiinr1 ;5prinflimjCMl MMPFcrLcvucaijJjiairi*rvriutri. l( i*LlircnrLp .Elarvl-itEMTLiaiQ);jKgjil (c 网ih 处一1 hRf号rvcflflrrf*,. t*vi) Ihwa ltpjcw!:4Dr. SrvlitEiLBt-lw! f ftipSrflnTtlaamn rtqivaii - (HttpSsvrYLaHiimt rnjii-; 5cring p*seMPOCIH1 PC5T, Gf1a afrDRi ;LETI-FJ;【W* 唧.*11.4- Htri*-!. 9l*iC. M C-itM-. 昭*itK BF *i*iriii E-lACri a PWR. LM-fc HMi4 liKtS.护. 比吋出川 dBaidirCAztiiiL-C-MKro-AlLov-CidAriTLEiii *iru;*-rt11电pnh 彌hl:餐 Pp:阳静们点中Fdl rer- J)4kT 炖 h!(号 怙Lfih M nELh “pLaMML贰3时 耳町“1!11 x iiJi rwiKr-JsrL-diHnUurZd - =rcqji: .4tFmc*E-uMr -.dJrurTd - :RdLaUtririnci pul rHhnAJiirALc*ipdL - zihaiTiili也帖LitT|HFtr*dLLTBcr、; IdlairPrl rf-lpfiL iUf 弋曲十!1*血卵S駢*,iL x nbh a.-.富文本文件及图片上传跨域问题解决方法:由于富文本上传大多应用 Flash 进行上传,在 Flash 和 Silverlight 中,服务器需要创建一个 crossdomain.xml 的文件来允 许跨域请求。此文件放置在TOMCAT目录下的ROOT文件夹中。 crossdomain.xml 具体配置参见下图:?xml versiortfb csite-control permitted-cross-dOTiain-poUci&s=lliiia5ter-ly7 aUow-http对应配置参数详解: permitted-cross-domain-policies :指定元策略。除套接字 策略文件外,所有策略文件的默认值均为master-only,套接字策略 文件的默认值为all。allow-access-from:元素用于授权发出请求的域从目标域中读 取数据。可以通过使用通配符(*),为多个域设置访问权限。domain:指定要授予访问权限的发出请求的域。可以是域名或 IP地址。子域将被视为不同的域。指定域时可以使用通配符星号(* ) 表示多个域。单独使用星号( * )表示所有域。一般不建议设置为星 号允许所有域访问。allow-http-request-headers-from :元素用于授权发出请求的 域中的请求文档将用 户定义的标头发送到目 标域。 而 allow-access-from 元素旨在授权从目标域提取数据。这个标签授权 以标头的形式推送数据。domain:指定要授予访问权限的的域。可以是域名,也可以是IP 地址,子域将被视为不同的域。通配符 (*) 单独使用时可用于表 示所有域,在用作以句点 (.) 分隔的明确二级域名前缀时表示多个 域。表示单个域时需要使用单独的 allow-access-from 元素。headers:以逗号分隔的标头列表,表示允许发送的请求域。通 配符 (*) 可用于准许所有标头或头后缀,从而支持以相同字符开头 但以不同字符结尾的标头。
展开阅读全文