上传文件问题(iframe方式) -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

上传文件问题(iframe方式)

2016-06-17 18:20:34 2487 1

需求:
1.兼容ie8/9

2.上传文件

3.页面无刷新

4.之后执行回调,获取服务器端的响应内容
为了兼容性,所以不能用H5的FormData
暂时能想到的就是通过iframe来实现。但是现在碰到个不知道该怎么解决的问题。
先看下我现在的页面结构
screenshot
我在[type="file"]上绑定了change事件,change后触发form提交

•当我提交的方式为post的时候,如上图所示,服务器端返回的所有内容都被装进了body下,由浏览器自动生成的pre标签中(目测是因为浏览器的安全机制,不知道这里该怎么处理)
•当我改成get提交的时候,iframe内可以正常显示返回的html内容(甚至包括,但是因为get方式的限制,提交不了较大的文件啊(印象中get只支持255字节)
所以暂时总结一下就是:
•post方式,可以正常上传文件,但是无法处理返回值(因为跨域 + 浏览器安全机制不能添加脚本)

•get方式,无法上传文件

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:43:27

    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结合使用

    0 0
相关问答

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 96124浏览量 回答数 28

34

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 283384浏览量 回答数 34

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 263036浏览量 回答数 39

295

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 437865浏览量 回答数 295

41

回答

【云服务器分享】简述云服务器对比VPS

dreamdoo 2012-10-08 16:24:18 125713浏览量 回答数 41

131

回答

Windows系统漏洞通知(请及时修复)

qilu 2014-11-12 14:33:42 94957浏览量 回答数 131

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 123826浏览量 回答数 8

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 108762浏览量 回答数 78

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 205068浏览量 回答数 13

37

回答

【云服务器教程征集令】这个六一阿里云邀您来吐槽!

fanyue88888 2012-06-01 18:55:41 114828浏览量 回答数 37
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载