1. 程式人生 > >jS Ajax 上傳檔案報錯"Uncaught TypeError: Illegal invocation"

jS Ajax 上傳檔案報錯"Uncaught TypeError: Illegal invocation"

ajax向後臺傳包括圖片、字串等資料的時候報錯。錯誤程式碼:

jquery-3.1.1.min.js:4 Uncaught TypeError: Illegal invocation

錯誤原因:
jQuery Ajax 上傳檔案處理方式,
使用ajax向後臺傳送資料時其中的圖片資料的引數型別為file,屬於物件,而不是一個字串值。導致錯誤的出現

var formData = new FormData();
formData.append("file",$("#dcim1")[0].files[0]);
formData.append("real_name", $("#name").val());

首先看是否由於引數書寫錯誤導致上述問題,如果誤寫成物件請修改相應引數型別。
如果確定要上傳的資料之一就是物件型,那麼請在ajax引數里加入
processData: false
contentType : false

$.ajax({ 
url : Url, 
type : 'POST', 
data : formData, 
// 告訴jQuery不要去處理髮送的資料
processData : false, 
// 告訴jQuery不要去設定Content-Type請求頭
contentType : false,
dataType: "json",
success: function(data)
{
..。 }