需求:从S平台上传文件到R平台,上传成功后R平台返回给S平台一个值,S平台是在一个页面弹出的浮窗里上传文件,所以不能用直接用向R平台submit的方式提交,换用一种类AJAX方式实现,此处用了target的方式,是一种伪AJAX.
文件上传--form.html:
<form name="form_add" method="post" action="b.action" enctype="multipart/form-data" target="hidden_frame"> <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe> </form> <script type="text/javascript"> function callback(msg){ if(msg == 0){ parent.$.nyroModalRemove(); } } </script>
form提交到的target的hidden_frame,这样看不出来页面跳转,callback为一个回调函数,接受上传action传回的值,根据传回值执行相应的操作。
处理上传文件--handler.action:
response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); response.setHeader("Cache-Control", "no-cache"); response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Headers", "x-requested-with"); response.addHeader("Location", callUrl + "?msg=" + result); response.sendRedirect(callUrl + "?msg=" + result);
callUrl为文件上传时提交的反调的callUrl,msg为回传的参数。
callUrl为S平台的deal_callback.html,和上传的页面在同一目标下,回调页面--deal_callback.html:
<script type="text/javascript"> var rs = window.location.search.split('?').slice(1); window.parent.callback(rs.toString().split('=').slice(1)); </script>
deal_callback.html是response跳转到的页面,里面就两行代码,跳转到deal_callback.html后,此页面调用上传页面的callback方法,将返回值传递过去,完成返回值的传递。
Quote: http://blog.leezhong.com/tech/2011/05/06/crossdomain-upload.html
相关推荐
NULL 博文链接:https://charice59.iteye.com/blog/1820700
iframe 跨域访问session问题解决方法
框架完美解决了iframe之间的跨域通讯。底层技术采用window.name转换代理实现
HTML5 postMessage+iframe实现文件跨域异步上传 http://blog.csdn.net/jiangsyace/article/details/43858443
ajax文件上传,跨域上传,html页面来着,下载下来就可以直接使用。 ajax文件上传,跨域上传,html页面来着,下载下来就可以直接使用。
asp.net结合html,javascript实现无刷新跨域数据提交
Stream跨域上传文件,Stream2和Stream3是两个工程直接MyEclipse导入就可以使用
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
NULL 博文链接:https://hqlly.iteye.com/blog/1662337
通过HTTPClient界面在JSP中嵌入iframe子界面跨域时,无法获取跨域界面的属性值的问题
iframe 与主框架相互访问例子,包含同域访问,跨域访问例子。
iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法
此demo是用于java HttpURLConnection跨域传送图片文件和图片,模拟火狐浏览器,对zip文件进行解压,对图片进行加logo 水印,缩略等处理。其中系统兼容性需要进一步完善,急需要积分,所以先分享了。 ...
iframe 跨域 自动适应高度;iframe 跨域 自动适应高度;
A站通过模态窗口打开B站,同时能够跨域获取返回值,亲测可用 基于IFRAME的多层嵌套实现
这是关于iframe使用过程中出现的问题整理的解决方法,关于使用iframe不用单独写接口打通数据,直接把数据通过ifarme嵌套方法传递过去,使用简单方便。
减轻服务器压力,为减少项目文件的变迁更改
该文档介绍了vue和普通web页面中iframe实现跨域的解决方案,解决了主页面中无法调用iframe方法的问题
主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主页面是取不到返回值的,原因就是因为跨域了.
iframe跨域访问示例