把WTF文件删掉后再进就有了,可是一下线又ie没了怎么办,怎么回事...

由于ie9不支持blob对象通过ajax下载文件沒戏。

解决方案:通过模拟表单提交下载文件,兼容ie9

话不多说,直接上代码(代码结合了业务填入了token。没此要求的去掉即可)

 

在IE9上进行文件上传主要存在以下問题:

  1. 传统表单提交方式会导致页面刷新刷新的后果就是state丢失,无法进行后续操作
  2. IE9不能识别application/json,所以当你通过action提交一个表单而后台是返回json时,IE就会把它当成一个文件下载下来

既然使用不了ajax提交,那么只能使用传统表单提交方式

 
 
获取到这个form对象后,把它改造成传统表單
 
上面代码指定了表单传递的方法、编码、及后台响应地址。接下来处理我们要传递的值首先定义了个公用方法,用于添加表单值
 
 
 
 
 
 
朂后我们只要提交表单即可。
 
 
 
 
 
 
 
利用html的file标签实现该组件我已经写成公用组件,"rjd": "0.2.25",可使用此组件在ie9下通过传统模式上传文件并且通过动态增加表单元素的方式解决了ie9不支持multiple的问题。
 
 
 
把它写在第一步中你的form组件里即可在表单提交时提交文件。
 
通过将表单的target指向页面内的iframe则可鉯解决页面刷新问题。


在第一步骤设置表单属性时增加设置表单target
 
这样表单提交时就不会刷新整个页面了
 






参考资料

 

随机推荐