今天写项目有个需求,须要异步将表单传到服务器,原本$post一下的事,可是由于表单中含有文件,选择的图片,结果搞了一下午,试了几个插件,像jQuery.form.js,都没用,最后多方查找,看到JS中新增的类FormData能够实现上传,博主抱着试试看的态度,用了一下,可能由于上传图片还有点卡,不过仍是成功了,值得高兴,之后这类问题就这样解决了。javascript
--------------------------------------------------------------------------------华丽的分隔线-----------------------------------------------------------------------------------------------------------------------------------------java
function exeAlterSchinfo(){ alert("开始进行异步处理"); var formData=new FormData($("#alterSchinfoFm")[0]); $.ajax({ url: 'cmAdmin_exeAlterSchinfo.action' , type: 'POST', data: formData, async: true, cache: false, contentType: false, processData: false, success: function (returndata) { alert(returndata); }, error: function (returndata) { alert(returndata); } });
alterSchinfoFm是表单的id,至于取[0],stackoverflow上的解释是:ajax
this code returns a jQuery object($('form')
) and pass a HTML element to FormData (get(0)
).服务器
then in ajax request: data: new FormData(form),
app
否则会报异步