当前位置: 首页 > Web前端 > HTML5

HTML5APIFormData---

时间:2023-04-05 23:00:09 HTML5

FormData使用介绍XMLHttpRequestLevel2添加了一个新接口FormData。使用FormData对象,我们可以通过JavaScript模拟一系列具有一些键值对的表单控件,也可以使用XMLHttpRequest()方法的send来异步提交这个“表单”。与普通的ajax相比,使用FormData最大的优势就是我们可以异步上传一个二进制文件。使用FormData对象来组合一组键/值对,以便使用XMLHttpRequest发送请求。发送表单数据可以更加灵活方便,因为它可以独立于表单使用。如果设置表单的编码类型为multipart/form-data,则通过FormData传输的数据格式与表单的submit()方法传输的数据格式相同。构造函数varformData=newFormData(FormElement);这里的FormElement是作为form表单的html元素;当然,你也可以不填写表单元素,直接构造表单元素。填写表单元素的目的是直接在表单中选择表单元素的名称和值,因为formData添加了键值对。添加append():向当前formData对象添加一个键/值对。append(DOMStringname,Blobvalue,optionalDOMStringfilename);append(DOMStringname,DOMStringvalue);name:字段名,也就是键名;value:字段值,可以是Blob对象、File对象、字符串等,该值会自动转为字符串;filename:(可选)指定文件的文件名,当value参数指定为Blob对象或File对象时,文件名将发送到服务器上,对于Blob对象,该值默认为“blob”.将添加了键值对的formData对象直接作为ajax请求传入的参数发送。如果你的请求成功,你会看到formData会生成form中所有的formnames和values如图:示例代码html

js-使用像jquery这样的插件(function(){varfile=null,fileOther=null,fd=newFormData($("#form")[0]);bindEvent();函数bindEvent(){$("#file").change(function(){file=this.files[0];});$("#fileother").change(function(){fileOther=this.files[0];})$("#submit").click(function(){fd.append("file",file);fd.append("fileother",fileOther);ajaxSend();})}functionajaxSend(){$.ajax({url:"yoururl",type:"post",data:fd,processData:false,//不处理数据contentType:false,//不设置内容类型success:function(resp){console.log(resp);}})}})()上面的case有个坑,因为是我踩的,所以留给大家踩。其他资源1.https://developer.mozilla.org...2,https://developer.mozilla.org...3,http://www.cnblogs.com/lhb25/...

最新推荐
猜你喜欢