ajax提交文件总结心得

情景:

需要使用一个接口,接口需要参数token和文件流,

 

困难:

使用form表单直接提交是可行的,但无法接收返回数据,所以还是得使用ajax

这时开始碰到难题,由于对流的不理解,看着网上讲的各种将文件转成各种2进制,也有用插件,也有用几十行代码的。每个方法都试了还是未果。

 

解决:

实在弄不出来,放弃了尝试,先去做了别的事情。过了一天再去回想,细看一下那些分享都是几年前的东西了,感情不应该那么复杂。然后我锁准方向再去搜索,太旧的帖子不看,太长的不看,终于发现一个可行方法。

var formData = new FormData($("form" )[0]);

   $.ajax({

        url: 'http://' ,

        type: 'POST',

        data: formData,

        contentType: false,

        processData: false, 

        dataType: "json",

        success: function (returndata) {

            alert(returndata.result.fileUrl);

        },

        error: function (returndata) {

            alert(returndata);

        }

   });

 

我一直没弄清楚的地方,看完以后立马思路清晰。

第一:格式化表单内容

var formData = new FormData($("form" )[0]);

html5的东西,不用各种复杂的处理。

第二:提交表单

其中这两个平时很少用的属性一定得写上

contentType: false,

processData: false, 

 

总结:

这次主要是心态的进步,不要往死胡同钻,不要为了一个问题死缠烂打。

学会退一步看问题,劳逸结合,切勿闭门造车

 

本人尘世间无名伴读书童一名,仅以此文作为个人记录使用,望不要误人子弟。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值