jQuery 提交 FormData 对象,前方有坑

xiaoxiao2021-02-28  33

允许我做一个悲伤的表情

在 Laravel 中提交了半天马歌姬的,老是提交不上去,一直报 jQuery 的错,弄了半天发现是 FormData 的问题。

我拿着 file 文件对象一个一个 append 到 FormData 里,最后用的 $.post 方法在那儿傻啦吧唧的提交了半天

呸,什么瘠薄玩意儿,才发现 processData 这玩意儿在使用 FormData 作为数据体时是不能开启的

而 $.post 里默认又是开启的【你就不能自己识别一下 data 的数据类型自己判断下?】

所以只能用 $.ajax 这个方法了:

var data = new FormData(); // 额外的数据直接传就行了 data.append('_token', 'xxxxxxxxxxxxxxx'); $(files).each(function(idx){ data.append('file[]', files[idx]); // append 走一圈,第三个参数文件名称可空 }); $.ajax({ // $.post,告辞 type: 'post', contentType: false, // 关关关!必须得 false // 这个不关会扔一个默认值 application/x-www-form-urlencoded 过去,后端拿不到数据的! // 而且你甚至不能传个字符串 'multipart/form-data',后端一样拿不到数据! processData: false, // 关关关!重点 url: '/upload', data: data, success: function (response) { // TODO } }); 至天 认证博客专家 Max Sky PHPer ------------------------------------------------------------
转载请注明原文地址: https://www.6miu.com/read-2620564.html

最新回复(0)