jQuery ajax請求成功且返回了數據,可是不進success:function()

1.狀態碼返回200--代表服務器正常響應了客戶端的請求;ajax

2.經過firebug和IE的httpWatcher能夠看出服務器端返回了正常的數據,而且是符合業務邏輯的數據,但程序就是不進入回調函數success:function(data){****}而是進入到error: function(data){***},記得上次是由於存在跨域訪問的問題致使。此次查看不存在跨域的問題;   json

3.返回的數據類型必定要符合定義的數據類型。即若是你定義的 dataType 是 json 類型的,那麼返回來的數據必定是 json 才能夠,否則就會執行 error 裏的程序;跨域

4.同時須要特別的注意返回的JSON數據是不是嚴格的JSON格式;服務器

5.也應該嚴重關切當後臺返回的是一個List 數據(List當中的數據是Json格式)時,有沒髒數據即不是嚴格的JSON格式。很隱蔽的多是數據某一個字段中在開始或末尾含有特殊字符,以"回車鍵"、"Tab鍵"等;函數

6.還有一點對JQuery 中ajax的一點其它的認識: 客戶端發起請求,獲得服務器端的相應是200(正確拿到服務器響應的數據)沒有問題.此時在判斷進入success 對應的回調函數仍是進入到error對應的回調函數以前,可能會校驗一些東西:回調函數

a.返回的每條數據是不是dataType中定義的數據類型。若是有部分數據不是或者哪怕一條數據沒有嚴格的按照dataType定義的類型,程序就會進入到error:function(){****};io

b.請求的域和當前域是不是同一域,若是不是同一域也十分有可能進入error:function(){***}。function

------------------------------------------------------------------------------------------------------------後臺

經過以上總結,再對照ajax看了一遍,發現少配了一個屬性(dataType屬性)由於數據類型返回的是json類型,而沒有配dataType:'json'這一屬性,因此致使出現了此問題。服務器端

相關文章
相關標籤/搜索