FormData通过ajax2上传文件在IOS上的坑
2018-02-08 23:08

今日在项目中需要上传文件,而且又是移动端的项目,所以就采用了通过ajax2使用formData上传文件的方式。

代码完成以后,进行测试,在PC端正常,在andriod手机上也正常,只有在ios手机上不正常。刚开始还以为是ios不支持formData呢,经过测试是支持的。后来发现,不是ios不支持formData,而是ios不支持formData对象上的某些方法。

var form=new FormData();
form.set("upfile",input.files[0]);

这是刚开始的代码,而ios是不支持set方法的,将set方法改为append方法后,ios就可以上传成功了。

正确代码如下:

var form=new FormData();
form.append("upfile",input.files[0]);

此外,通过查找相关文档发现,不知是set方法,其他的方法get , getAll , has , delete 等方法都很有兼容性问题。只有append方法是有保障的。因为我们在ios,andriod等支持这些方法之前,尽量只使用append方法来操作FormData对象。

不过,现在web技术发展这么快,详细这些特性方法在不久的将来都会被支持。


希望本文能对遇到同样bug的前端朋友提供一些帮助。

原创文章,转载请注明来自:妹纸前端-www.webfront-js.com.
阅读(1307)
辛苦了,打赏喝个咖啡
微信
支付宝
妹纸前端
妹纸前端工作室 | 文章不断更新中
京ICP备16005385号-1