加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax上传文件的请求

发布时间:2020-12-16 03:14:53 所属栏目:百科 来源:网络整理
导读:1、data是FormData 发送的data必须是FormData类型 2、注意processData 把processData设为false,让jquery不要对formData做处理,如果processData不设置为false,jquery会把formData转换为字符串。 3、contentType 查看文件上传的请求头里 Content-Type: mult

1、data是FormData

发送的data必须是FormData类型

2、注意processData

把processData设为false,让jquery不要对formData做处理,如果processData不设置为false,jquery会把formData转换为字符串。

3、contentType

查看文件上传的请求头里Content-Type: multipart/form-data; boundary=OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp ,参数boundary为请求参数之间的界限标识。
这里的Content-Type不是你设置的,而是FormData的content-type。

如果jquery请求设置了contentType,那么就会覆盖了formData的content-type,导致服务器在分隔参数和文件内容时是找不到boundary,报no multipart boundary was found错误

默认情况下jquery会把contentType设置为application/x-www-form-urlencoded。要jquery不设置contentType,则需要把contentType设置为false。

也就是说contentType:false,防止contentType覆盖掉formData的content-type。

4、example

var data=new FormData();
$.each(files,function (i,file) {
    data.append("file",file);
});
$.ajax({url:'',type:'post',contentType:false,processData:false,data:data,success:function () {
            console.log("111");
        }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读