使用AJAX實現檔案上傳時Illegal invocation錯誤
阿新 • • 發佈:2020-07-28
Js程式碼
var formData = new FormData(); formData.append('userName',$scope.userName); formData.append('file',$scope.file); var url ="http://localhost:8080/SpringMVCT/rest/v1/uploader"; $.ajax({ type:'POST', url:url, data:formData, contentType:undefined, mimeType:"multipart/form-data", success:function(data){ } });
看錯誤提示資訊應該是輸入引數錯誤,檢查程式碼可能是$scope.file這個File型別的引數被預先處理了,於是設定$.ajax 的processData:false,請求成功
$.ajax({ type:'POST', url:url, data:formData, contentType:undefined, processData:false, mimeType:"multipart/form-data", success:function(data){ } });
processData用於對data引數進行序列化處理,預設值是true。預設情況下發送的資料將被轉換為物件,如果不希望把File轉換,需要設定為false