有个关于iframe跨域上传的问题,求高手指导
本帖最后由 huangwenjun880818 于 2014-04-26 14:16:10 编辑
在
www.aaa.com上的
a.jsp用一个form套一个iframe.然后提交上传文件到同主域下的静态服务器
staic.aaa.com
<form action="
http://static.aaa.com/a.action" method="post" enctype="multipart/form-data"
target="iframe">
<input type="file" name="upload" />
<input type="submit" value="submit"/>
<iframe name='iframe' id="iframe" style='display:none'></iframe>'
</form>
同时a.jsp上还有一个
callback方法.接受处理返回的数据.
在static.aaa.com上处理完成之后
response.sendRedirect()跳转到www.aaa.com上的一个页面callback.jsp
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
response.addHeader("Location", "www.aaa.com/callback.jsp?msg=" + result);
try {
response.sendRedirect( "www.aaa.com/callback.jsp?msg=" + result);
} catch (IOException e) {
e.printStackTrace();
}
在www.aaa.com的callback.jsp上只有一段js.调用a.jsp上的callback方法,传递返回数据
<script type="text/javascript" >
var rs = window.location.search.split('?').slice(1);
window.parent.callback(rs);
</script>
我想问这个方法算同主域不同子域之间的跨域还是根本都没跨域?请高手指导
------解决方案--------------------算,设置document.domain='aaa.com',就是顶级域名实现不同二级域名之间的跨域相互操作
如果顶级域名不一样无法操作,除非那个网站你可以控制可以使用postMessage对象
------解决方案--------------------先去掉
style='display:none'
看看iframe里面是否错误了
http://www.aaa.com/
http开头才是正确的url吧
------解决方案--------------------本帖最后由 net_lover 于 2014-04-26 20:51:07 编辑
你执行重定向回www.aaa.com了,就没跨域了
重定向之前是跨域