Home  >  Q&A  >  body text

javascript - 上传文件问题(iframe方式)

需求:

  1. 兼容ie8/9

  2. 上传文件

  3. 页面无刷新

  4. 之后执行回调,获取服务器端的响应内容

为了兼容性,所以不能用H5FormData
暂时能想到的就是通过iframe来实现。但是现在碰到个不知道该怎么解决的问题。

先看下我现在的页面结构

我在[type="file"]上绑定了change事件,change后触发form提交

所以暂时总结一下就是:

所以,跪求满足需求的方案。。。

高洛峰高洛峰2640 days ago492

reply all(2)I'll reply

  • 怪我咯

    怪我咯2017-04-10 16:25:04

    谢邀。。。我只是想到一些思路,未经验证

    get首先是不行的,上传文件必须用multipart/form-data的enctype,这个是get不能支持的

    post可以,我想到的几个方案如下:

    1. 传到你的同域服务器,由服务器代为转发到远端跨域服务器

    2. 使用postMessage https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage,chrome已经可以用了

    3. 远端的上传接口加一个回调URL的功能,当你这里上传结束时,远端服务器进行一次redirect让iframe跳转到你的同域服务器的一个页面,然后访问window.parent或者JSONP之类的方案来解决余下的问题

    2亦可以和1,3结合使用

    reply
    0
  • 迷茫

    迷茫2017-04-10 16:25:04

    4是如何解决的?iframe加回调值

    reply
    0
  • Cancelreply