標籤:

HTML5 FormData AJAX非同步上傳文件

通過FormData對象可以組裝一組用 XMLHttpRequest發送請求的鍵/值對。它可以更靈活方便的發送表單數據,因為可以獨立於表單使用。

如果你把表單的編碼類型設置為multipart/form-data ,則通過FormData傳輸的數據格式和表單通過submit() 方法傳輸的數據格式相同。

完整用法筆記:FormData 對象的使用

<div class="form-group"><label class="control-label">附件</label><form enctype="multipart/form-data" method="post" name="fileinfo"><input type="file" name="upfile" /><input type="submit" value="Stash the file!" /></form></div>

function uploadAjax() {var form = document.forms.namedItem("fileinfo")form.addEventListener(submit,function (ev) {Data = new FormData(form);var req = new XMLHttpRequest();req.open("POST",/attachment,true);req.onload = function (e) {if(req.status == 200){alert("上傳成功!"+req.responseText) }else{alert("上傳失敗!") } };req.send(Data); ev.preventDefault(); },false)}

推薦閱讀:

ajax跨域,這應該是最全的解決方案了
AJAX的出現與跨域處理
如今的網站是否可以設計成只有一個html(內容框架),全站無跳轉?
jquery ajax怎麼通過header傳遞參數? 不想通過url傳參!
AJAX 跨域解決方案 - CORS

TAG:HTML5 | Ajax |