ajax fromdata传值_使用Ajax请求传递form表单文件上传数据

FormData的主要用途有两个:

1、将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。

2、异步上传文件

使用一:

var formData = new FormData();

formData.append('photo', $('#file')[0].files[0]);

js文件:

$.post("upload",formData,function (data) {

if(data){

alert("提交成功");

}

});

出现错误

探究发现$.post方法无法满足文件上传

原因:

1.$.post中contentType默认的值为:'application/x-www-form-urlencoded; charset=UTF-8,而文件上传一个是multipart/form-data,但是请求内容不只是文件上传。所有使用contentType:false

2.$.post中processData参数默认的值为true,会转数据格式,上传不需要转,所有使用processData: false

————————————————

使用二:

正确的代码:

var formData = new FormData();

formData.append('photo', $('#file')[0].files[0]);

$.ajax({

type: "POST",

url:"upfile",

data:formData,

contentType: false,

processData: false,

success: function(data) {

if(data){

alert("上传完成~~~");

}

}

});

————————————————

总结: post()不是万能的,虽然非常简便,但是还是有一定的局限性,如果遇到需要复杂些的设置还是需要使用ajax()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值