初始化form表單時serialize()和new FormData()的用法區別


1、var formser = new FormData($('#searchForm')[0]);//獲取表單的參數

formser.append("test",test)//可增加請求的參數


2、 var formser=$('#dataForm').serialize();

注意:serialize只能序列化表單中的數據 ,比如文本框等input  select等的數據,但是對於文件,比如文件上傳,無法實現 ,需要使用FormData

 

 

例:

<form id="tf" method="post" action="${ctxPath}/mobile/xxx.do" enctype="multipart/form-data">
<input type="file" name="file" id="file1_0" value=""
accept="image/jpg,image/jpeg,image/png,image/gif,image/bmp"
onchange="imgChange('z_photo1','z_file1','file1_0');"/>

</form>

$.ajax({
type: 'POST',
data: uploadFormData,
url: '/Artical/Publist',//TypeError: 'append' called on an object that does not implement interface FormData.
processData: false,  //processData 默認為false,當設置為true的時候,jquery ajax 提交的時候不會序列化 data,而是直接使用data
contentType: false,   //https://segmentfault.com/a/1190000007207128(contentType詳解)

//這兩個參數如果不寫,則會報紅色出的錯誤
async: false,
success: function (data) {
if (typeof (data) == undefined) {
alert("用戶信息已丟失,請重新登錄!");

window.parent().location.href = "/Account/Login";
}
if (data.ErrorMsg == "") {
alert('美文發布成功!');
} else { alert(data.ErrorMsg); }
}
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM