通过Ajax方式提交含有文件的表单
来源:互联网 发布:teamview linux无桌面 编辑:程序博客网 时间:2024/05/22 14:23
前言:我们通常使用form表单,通过submit来将form表单中含有的文件上传到服务器。通过这种方式页面将会刷新,但是我们有时需要不刷新页面来提交含有文件的表单,这时我们就会想到通过ajax的方式。但是,如何通过ajax来提交含有文件的表单呢?
Html代码:
<form id="uploadForm"> 回复内容:<input type="text" name="msg" /> 上传图片:<input type="file" name="file"/> <input type="button" value="确定" onclick="saveMsg()"/></form>
JS代码:
function saveMsg() { var formData = new FormData($("#uploadForm")[0]); $.ajax({ async : flase, cache : flase, type : "post", data : formData, url : 'http://localhost:8080/ajaxupload', dataType : 'json', contentType: false, //必须 processData: false, //必须 success : function() { console.log('success'); }, error : function(arg1, arg2, arg3) { console.log(arg1 + "--" + arg2 + "--" + arg3); } });}
这里使用了FormData对象,那FormData对象是什么呢?我们可以在mozilla的web开发者指南中看到FormData的详细使用方法。简单的说我们可以使用FormData,使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个”表单”.
在上面的js代码中,我们使用Jquery的ajax方法来提交数据。注意:我们应该使用较新的Jquery,老版本的可能不支持,同时必须设置contentType : false和processData : false。否则,jquery会报“Uncaught TypeError: Illegal invocation”这样的错误。因为jquery会试图将不是字符串的内容进行转换,设置processData : false禁止其转换,设置contentType : false是告诉jquery不要为其设置Content-Type头,防止上传失败。参见:http://www.cainiaoer.com/2013/09/388.html
以上。
0 0
- 通过Ajax方式提交含有文件的表单
- ajax异步提交含有文件的表单
- Ajax提交含有文件type='file'标签的表单
- 通过jQuery的Ajax方式来提交Form表单
- jquery Ajax 通过jsonp的方式跨域提交表单
- Jquery通过Ajax方式提交Form表单
- ajax提交表单的方式
- 通过传统的form表单提交的方式上传文件
- 通过Ajax方式提交form表单上传文件,使用FormData进行Ajax请求
- ajax方式提交带文件上传的表单
- Ajax方式提交带文件上传的表单
- 用jquery.form.js 实现ajax提交含有上传文件和普通字段的表单
- html5里使用ajax提交含有上传文件的form表单
- 表单上传文件提交实现ajax方式
- ajax提交表单方式
- Ajax 提交表单方式
- 通过Ajax提交form表单来提交上传文件
- extjs表单的非ajax提交方式
- JS的事件处理程序
- hdu 3284 Adjacent Bit Counts【dp】
- WSDL文件详解
- 腾讯移动前端一面(不会的题)
- POJ 1000 A+B Problem
- 通过Ajax方式提交含有文件的表单
- tomcat服务器启动后,但是使用默认端口打不开网页
- CodeForces 508A Pasha and Pixels
- oracle查看视图引用表及视图内容
- QSettings用法详解
- 代理模式和装饰模式的差别
- NoSQL
- Java Array和Arrays
- 二进制中1的个数统计