1. 程式人生 > >ajaxFileUpload報錯$.ajaxFileUpload is not a function解決方法

ajaxFileUpload報錯$.ajaxFileUpload is not a function解決方法

報錯資訊

Uncaught TypeError:$.ajaxFileUpload is not a function
大意就是,ajaxFileUpload這個函式未定義

錯誤背景

我使用了ajaxFileUpload這個js來實現不借助form表單的不重新整理頁面提交檔案的功能(但是其實這個js內部還是用的是form表單提交的233,偽ajax,和jQuery ajax是不一樣的)。
在找了一個ajaxfileupload.js下載引用並且寫好上傳程式碼之後,一直報這個錯誤,我開啟控制檯看了一下,ajaxfileupload.js是引用成功的,可以在控制檯開啟,在其中可以看到ajaxFileUpload這個函式是定義了的,但是不管重啟伺服器多少次,都會報這個錯誤。然後開始各種查資料,開始看大家所說,以為是ajaxfileupload.js這個檔案本身的問題,然後我去github下載了fork最多的那個,替換之前下的那個,還是不對,又在不同的幾個地方找了幾個不同版本的ajaxfileupload.js都試了試,仍舊是這個錯誤。然後看網上資料說與jquery.min.js也有關,因為我使用了Bootstap,所以jquery.min.js是之前匯入的有的,懷疑是這個js版本導致的錯誤,我又試了幾個不同版本的jquery.min.js,然而並無卵用。
最後,終於在一個不起眼的小旮旯裡找到了一個說法:js引用版本衝突可能會導致這種錯誤,後來又在CSDN問答裡看到了一個人也是遇到這種錯誤,說與include有關,最後仔細看include才找到了真正導致這個錯誤的原因。

解決方法

首先,我們需要明確幾個前提(別人的部落格裡基本都講過這些啦,但感覺還是有必要說一下):

  1. 確認你使用的ajaxfileupload.js不是不知道從哪裡搞來的可用性待商榷的。
    因為這個js較簡單很多人是自己寫的,所以可能有很多不是普遍使用的版本。我在這裡給出我使用的js。點我下載
  2. 確定你匯入了jquery.min.js和ajaxfileupload.js這兩個js,並且路徑沒有問題,並且jquery.js在ajaxfileupload.js之前匯入。
    如果因為路徑錯誤或者配置錯誤什麼的導致js沒有成功匯入上述兩個js那就是別的地方有錯誤。判斷自己是否成功匯入js很簡單,用開發人員工具看一下對應的js是否能開啟,或者重新整理一下頁面在network裡面看一下js檔案的http請求狀態,200或者304表示匯入成功(這兩個狀態的不同可以自己百度,但是都表示成功)。

  3. 以上兩點確認之後,那麼重點就來了,你要看一下你的頁面中有幾個匯入的jquery.min.js和ajaxfileupload.js,如果確保本頁面這兩個js都匯入了一次,那麼,你應該是使用了include標籤,如果你在include標籤裡面匯入了jquery.min.js或者ajaxFileUpload.js的話,瀏覽器就會因為在同一個頁面中匯入了兩個同名的js而不知道該用哪一個(儘管匯入的是同一個js檔案!),所以乾脆就不用了。。。然後就會報上述錯誤了,確保你所有的include以及iframe子頁面裡面沒有匯入其它jquery.min.js,那麼這時就應該已經解決這個錯誤了。

OK,就這樣了,具體關於ajaxFileUpload.js實現無重新整理檔案上傳的過程及程式碼我會另寫一篇部落格來記錄,這一篇部落格僅僅是描述並且解決一個報錯而已。
好好學習,天天向上,加油!

相關推薦

ajaxFileUpload$.ajaxFileUpload is not a function解決方法

報錯資訊 Uncaught TypeError:$.ajaxFileUpload is not a function 大意就是,ajaxFileUpload這個函式未定義 錯誤背景 我使用了ajaxFileUpload這個js來實現不借助form表單的不

webpack4: compilation.mainTemplate.applyPluginsWaterfall is not a function 解決方法

webpack class gin 安裝 fall log 大坑 谷歌 維護 今天搗鼓webpack4踩到一個彌天大坑:使用html-webpack-plugin打包html的時候一直報 compilation.mainTemplate.applyPluginsWaterf

TypeError: e.indexOf is not a function解決方法

This error might be caused by jquery event aliases like .load, .unload or .error deprecated since jQuery 1.8. Look for these aliases in

TYPEERROR: UNDEFINED IS NOT A FUNCTION解決方法

今天除錯程式碼的時候碰到一個小問題,jQuery選擇器程式碼全部不起作用了,比如程式碼在爭取引用jQuery後呼叫$(‘.foo’)的時候還是報錯 TypeError: undefined is not a function解決方法異常簡單,原因是在把原先一個較大的js檔案

ajaxfileupload.js的:jQuery.handleError is not a function 解決辦法

handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.4.2之後的版本中都沒有這個函數了。因此在jquery高階版本中將這個函式新增上 ,問題解決。 該js程式碼段可以加在jquer.js或者ajaxfileupload.js中。 ; (

ajaxfileupload.js jQuery.handleError is not a function

 在做ajaxFileUpload時,我也遇到這個問題,同時還有其它的問題,用了一下午的時間解決了: 問題1:jQuery.handleError is not a function 原因是,經測試handlerError只在jquery-1.4.2之前的版本中存在,j

ajaxFileUpload :jQuery.handleError is not a function解決方法

jQuery.handleError is not a function 報錯原因是: handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.4.2之後的版本中都沒有

NodeJS | 連線mongodb資料庫成功之後db.collection is not a function錯誤解決辦法(四)

在nodejs操作mongodb顯示資料庫連線成功之後突然報了db.collection is not a function錯誤,引起這個錯誤的原因是nodejs獲取資料庫表的API寫法不對。(正如NodeJS | 入門篇 (一)提到的,不同版本的API,使用規範有差別)。修改方式如下: var

【NodeJs】連線mongodb資料庫成功之後db.collection is not a function錯誤

在nodejs操作mongodb顯示資料庫連線成功之後突然報了db.collection is not a function錯誤 nodejs程式碼如下: /** * Created by lenovoo on 2018/1/23. */ var express = requ

js:****is not a function解決方法

1.最簡單的情況就是在html中使用的方法名與js方法名定義的不一致,仔細檢查就ok; 2.在使用js方法form.submit()出現這種報錯的時候,說明在提交表單中的元素中 有設定name=submit 的存在,使得系統混淆,造成報錯! 3.在表單中元素的name和id屬

使用jqueryreplace is not a function

1,情景描述:做專案的時候想把內容的某些字元給替換成另外一些字元 2,replace用法:replace() 方法用於在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的子串。 3,我在頁

使用antd-mobile, injectBabelPlugin is not a function

exp 報錯 運行 版本 方法 over cti -a const 在create-react-app中,使用antd-mobile,報錯 injectBabelPlugin is not a function 查閱資料發現react-scripts 升級到 2.1.2

$(...).on is not a function 解決方案

比如在js加入 $("p").on("click",function(){     alert("The paragraph was clicked."); }); 如果報$(…).on is not a function 錯誤 可能是你的jQuery

.finally is not a function —— 解決低版本瀏覽器axios不支援finally

框架專案用axios呼叫介面時,我們常用:介面名().then(result=>{ do sth... }).catch(()=>{ do sth... }).finally

angular 1.6 $http.get(...).success is not a function 解決辦法

一、現狀 使用了angular1.6最新版,執行以前的專案報錯,按F12開啟除錯介面,控制檯輸出以下資訊$http.get(...).success is not a function,也就是說找不到success方法,同樣也找不到error方法。 二、

.jquery(..)is not a function解決辦法

今天在做專案時,碰到了一個超奇怪的問題。我在html中的程式,跑的好好的,換成jsp在專案中跑,就一直報$ is not a function錯。找了很久,試了很多,都沒解決。後來,突然想到,將我引入的js檔案的順序換一下,將jquery的js檔案第一個引入,別的js檔案放

UnCaught TypeError:date.getFullYear is not a function解決方案

        只想看解決方案的,可看紅字!         今天在公司做專案,要求在前臺顯示一個只顯示年月日的日期。         我在資料庫存的型別是date(此處要說一下date與datetime的區別:date年月日;datetime年月日時分秒),實體類的是ja

mongodb TypeError: db.collection is not a function 解決辦法

TypeError: db.collection is not a function 解決辦法 我也是自己踩坑(三個小時)剛剛出來的 在使用 MongoDB 資料庫 collect

ajaxFileUpload jQuery.handleError is not a function

現在大家至少也在用jquery1.9以上的版本,ajaxfileupload的版本早就不更新了,大家可以下載看:地址這裡,它例子裡使用的Jquery是1.2的,好老呀。。。這個問題,我以前開發過程中遇過,網上說經測試(我是沒測試),是版本1.4.2之前的版本才有handl

引用(ajaxfileupload.js) ajaxfileupload.jsjQuery.handleError is not a function

在做ajaxFileUpload時,我也遇到這個問題,同時還有其它的問題,用了一下午的時間解決了: 問題1:如樓主所說,jQuery.handleError is not a function 原因是,經測試handlerError只在jquery-1.4.2之前的版本中存