首頁  >  文章  >  web前端  >  Ajax serialize() 表單進行序列化方式上傳文件

Ajax serialize() 表單進行序列化方式上傳文件

韦小宝
韦小宝原創
2018-01-01 19:42:272302瀏覽

這篇文章主要介紹了Ajax serialize() 表單進行序列化方式上傳文件的相關ajax資料,對ajax感興趣的朋友可以參考下

透過傳統的form 表單提交的方式上傳檔案


<form id="uploadForm" action="" method="post" enctype="multipart/form-data"> 
   <p>上传文件:<input type ="file" name="file"/></p> 
   <input type="submit" value="上传"/> 
</form>


#不過傳統的form 表單提交會導致頁面刷新,但是在有些情況下,我們不希望頁面被刷新,這種時候我們都是使用Ajax 的方式來請求的。

使用serialize() 對form 表單進行序列化提交


$.ajax({ 
   url: "", 
   type: "POST", 
   data: $(&#39;#uploadForm&#39;).serialize(), 
   success: function(data) {   
   }, 
   error: function(data) {
   } 
});


如上,透過$('#uploadForm').serialize()可以對form 表單進行序列化,從而將form 表單中的所有參數傳遞到服務端。

但是上述方式,只能傳遞一般的參數,上傳檔案的檔案流是無法被序列化並傳遞的。不過如今主流瀏覽器都開始支援一個叫做 FormData 的對象,有了這個對象就可以輕鬆地使用 Ajax 方式進行文件上傳了。

使用FormData 進行Ajax 請求並上傳檔案


#
<form id="uploadForm"> 
   <p>上传文件:<input type="file" name="file" /></p> 
   <input type="button" value="上传" onclick="upload()" /> 
</form>
function upload() { 
   var formData = new FormData($("#uploadForm")[0]); 
   $.ajax({ 
     url: &#39;&#39;, 
     type: &#39;POST&#39;, 
     data: formData, 
     async: false, 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function(data) {
     }, 
     error: function(data) {   
     } 
   }); 
}


以上所述是小編給大家介紹的Ajax serialize() 表單進行序列化方式上傳文件,希望對大家有幫助! !

相關推薦:

手寫Ajax實作非同步刷新的範例方法

實例講解HTTP封包及ajax基礎知識

實例分析Ajax非同步請求技術

以上是Ajax serialize() 表單進行序列化方式上傳文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn