1. 程式人生 > 實用技巧 >使用AJAX實現檔案上傳時Illegal invocation錯誤

使用AJAX實現檔案上傳時Illegal invocation錯誤

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