今天寫項目有個需求,須要異步將表單傳到服務器,原本$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
否則會報異步