近期突然需要用到?jQuery?來做一個文件上傳的需求,ajax傳數(shù)據(jù)遇到報錯,百思不得其解,在一篇博客找到了解決方案 -- 傳送門
源碼:
var form = new FormData()
? ? form.append('file', $('.switchBox').find('.file-input')[0].files[0])
? ? $.ajax({
? ? ? type : "POST", //提交方式
? ? ? url : "/upload",//路徑
? ? ? data: form,
? ? ? success : function(res) {
? ? ? ? console.log(res)
? ? ? }
? ? });
看似一切正常,然后就報了?Illegal invocation,重點來了 /敲黑板
設置$.ajax processData:false,請求成功
processData
默認值:true。默認情況下,通過data選項傳遞進來的數(shù)據(jù),如果是一個對象(技術上講只要不是字符串),都會處理轉(zhuǎn)化成一個查詢字符串,以配合默認內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請設置為 false。(摘自w3school)