日期:2014-05-16  浏览次数:20376 次

有个关于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了,就没跨域了
重定向之前是跨域