情景:
需要使用一个接口,接口需要参数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,
总结:
这次主要是心态的进步,不要往死胡同钻,不要为了一个问题死缠烂打。
学会退一步看问题,劳逸结合,切勿闭门造车
本人尘世间无名伴读书童一名,仅以此文作为个人记录使用,望不要误人子弟。