1. 程式人生 > >jquery ajax請求成功,返回了資料,但是不進success回撥函式的問題

jquery ajax請求成功,返回了資料,但是不進success回撥函式的問題

來自http://www.myexception.cn/ajax/413061.html
--------------------------拷貝內容 start ----------------------------------------------------1.狀態碼返回200--表明伺服器正常響應了客戶端的請求;
      2.通過firebug和IE的httpWatcher可以看出伺服器端返回了正常的資料,並且是符合業務邏輯的資料。
           但是,程式就是不進入到回撥函式success: function(data){****}而是進入到error: function
(data)
{***} 記得上次是因為存在跨域訪問的問題導致。這次檢視不存在跨域的問題。此時就很是不解。 事情的來源是這樣的: 後臺的配置管理模組中有一塊是關於國際化的配置,增加國際化描述等等,查詢國際化描述。 問題的來源是在輸入key='a' 查詢前十條資料時發現可以正常的展現資料,但是當我輸入key值為z時,並且再查詢前20條資料是發現數據不能展現,但是server返回了資料庫中的資料。這時第一反應是事不時資料返回的有問題,粗略的檢查了返回的資料發現和第一次查詢沒有什麼明顯的區別。但是隻查詢第十四條資料時發現,顯示不出來。這時候就開始懷疑了資料問題,進而到資料庫中查詢第十四條資料沒有發現什麼特別的地方。 這時開始懷疑,難道是JS程式有處理資料相容性有問題,覺得甚是不可思議。整了大約半小時,越來越覺得不大可能。就放棄了這種想法。 有轉向,重新審視資料。 但是發現數據從中間換行了,沒太在意。 在糾結了一會兒後問一同事,指出資料可能多了一個"回車鍵"
,在其指點下到資料庫表中再次檢視該條資料發現有一個欄位的值多了一個"回車鍵"。刪除後,一切恢復正常。 思考第一次和第二次碰到的問題,我初步認識到: 1. 返回的資料型別一定要符合定義的資料型別。即如果你定義的 dataType 是 json 型別的,那麼返回來的資料一定是 json 才可以,平且不然就會執行 error 裡的程式塊兒。 (1) 同時需要特別的注意返回的JSON資料是否是嚴格的JSON格式. (2) 也應該嚴重關切當後臺返回的是一個List 資料(List當中的資料是Json格式)時,有沒髒資料即不是嚴格的JSON格式。 很隱蔽的可能是資料某一個欄位中在開始或末尾含有特殊字元,以"回車鍵"
"Tab鍵"等 這類隱蔽錯誤的規避措施就是好的程式設計習慣: a. 對於在頁面填寫入庫的資料最好強制性的做,去空操作<利用客戶端最好>。 b. 特殊的業務需注意特殊字元。 這樣還不夠,因為在開發過程中測試或開發人員自己在資料庫中手動新增資料,可能會多加了空格等,導致程式除錯,測試帶來了麻煩。 這時就需要考慮在後臺程式碼對獲取的資料做處理。 2. 原因是ajax請求跨域了,解決方法是在兩個檔案裡都新增一段 js: [/b]document.domain,或者採用Jsonp的方式,如我的前一篇blog中提到的。 還有一點對JQuery 中Ajax的一點其它的認識: 客戶端發起請求,得到伺服器端的相應是200,<正確拿到伺服器響應的資料>沒有問題.此時在判斷進入success 對應的回撥函式還是進入到error對應的回撥函式之前,可能會校驗一些東西: 1. 返回的每條資料是否是dataType中定義的資料型別。如果有部分資料不是或者哪怕一條資料沒有嚴格的按照dataType定義的型別,程式就會進入到error:function(){****} 2. 請求的域和當前域是否是同一域,如果不是同一域也十分有可能進入error:function(){***} ” ---------------------------end --------------------------------------------------------------------------

後面檢視json資料格式,發現裡面有反斜槓(\),去掉反斜槓後就ok了。 所以一個很常見的原因是資料格式錯誤。

相關推薦

jquery ajax請求成功返回資料但是success函式的問題

來自http://www.myexception.cn/ajax/413061.html --------------------------拷貝內容 start -------------------

ajax請求成功之後返回資料怎樣顯示到頁面跟隨表單一起提交

.val用來獲取input框內輸入的值 ajax裡 $("#imageSrc").val(data); // 獲取到輸入的值 對應html裡 < input name=“data[imageSrc]” id=“imageSrc” type=“hidden”> .html,用來

JQUERY AJAX請求成功返回資料但是SUCCESS的問題

在前天專案中碰到這個問題,原因是後臺java返回的json 不規範導致,我是先看先看下面的部落格找到的思路,但我不是用的他說的方法,我是把dataType:"json"註釋掉,把aynsc改為false,也就是非同步改為同步,解決的問題。 (adsbygoogle = window

jquery ajax請求成功返回資料但是success的問題 【轉】

      這幾天一直被 ajax請求成功,返回了資料,但是不進success的問題困擾著,怎麼弄就是解決不了,總以為 是:$(document).ready(function(){});沒起作用,一直找頁面載入的方法來試,整了好幾天沒整出來....今天比較幸運, 在網上找到了一篇關於這方面問題的文章,按

jqueryajax的dataType,伺服器返回資料但是succes:function(data)執行

當ajax中設定的dataType的型別和 伺服器返回的資料型別不一致時,succes:function(data)會不執行 如伺服器ServletActionContext.getResponse().getWriter().print("error"); 前臺

關於jquery ajax請求返回值也有但是卻無法進去ajaxsuccess函式

        這幾天在除錯專案中發現了jquery ajax出現了,請求發了,用chorme的network 發現請求也成功了,最後發現沒有進入ajax的success回撥函式,這個問題經我除錯發現

jquery ajax請求成功也有response但是success

error: json格式 回調函數 區分 回調 服務 erro 就會 watcher 1.狀態碼返回200--表明服務器正常響應了客戶端的請求;2.通過firebug和IE的httpWatcher可以看出服務器端返回了正常的數據,並且是符合業務邏輯的數據,但是,程序就是不

php後臺查詢出資料返回json資料前臺接收並輸出

stu表: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://www.jq22.com/jquery/jquery

Android 使用Sqlite資料庫時插入資料報錯查詢

Android 使用Sqlite資料庫時,插入了資料,不報錯,但查詢不到 (初學者)今天寫安卓的時候遇見這麼一個問題,我覺得挺有趣的,就是cursor查詢時,用cursor.getString(1),這種居然不能精確定位到行位置(可能是從0開始?有時間再細糾一下),得用cur

Python FlaskJson返回Json資料jsonify

  demo.py(返回Json資料): # coding:utf-8 from flask import Flask, jsonify import json app = Flask(__name__) # 第一種方式:手動返回Json字串 @app.route("/i

ASP.NET WEB API微信支付通知介面返回xml資料微信伺服器識別問題

最近開發微信小程式中用到了微信支付功能,介面開發用的ASP.NET WEB API;在支付成功後,介面接受到微信伺服器的支付通知結果,處理完資料,介面返回給微信服務資料時出現了問題。微信伺服器識別不到返回的資料,導致重複通知。最終解決程式碼如下: protect

1返回資料為什麼在js的success裡面拿資料的原因。2Uncaught SyntaxError: Invalid or unexpected token

【1】j就拿ssm為框架的專案 1,你沒有給你的返回值進行json的資料格式的轉化 1>.或者你的contorller沒有有返回值的註解@ResponseBody

Ajax請求傳送成功success方法

情況描述:ajax傳送成功,後臺也成功響應請求,並返回了json資料,通過chrome監聽請求也可以看到響應的json資料,但是就是不進success方法,反而跑到error方法中了 前端: $.

關於ssm前臺html頁面jquerysuccess函式實現跳轉重新整理問題

$(function(){ $.ajax({ type:“post”, url:"…/…/b/k.action", dataType: “json”, success:function(data){ $(data).each(function(k,v){ $("tbody").a

jquery通過ajax方法獲取本地json檔案執行success

//a.json { list:{ createtime:"2018/11/05 16:45:22", status: 0, name: "aa", price: "188.00", num: "2", img: "1.jpg" } }

jqueryajax success函式執行

     弄了好長時間,執行ajax請求的介面一直返回404,請求壓根就沒有傳到後臺,除錯了半天,原因找到了ajax請求裡面的引數一定得跟java後臺裡面的請求引數保持一致才行; data.productName = productname;

SpringMVC中使用ajax請求controller後無法執行success函式

1、今天上午寫了一個簡單的demo,用來驗證springMVC的功能,前臺實現如下: $.ajax({ type : 'post', url : webAppPath + "scl/pictureData/cmdRequestPictureData.do", d

程序間的資料共享、程序池的函式和執行緒初識、守護執行緒

一、程序的資料共享 程序間資料是獨立的,可以藉助於佇列或管道實現通訊,二者都是基於訊息傳遞的 雖然程序間資料獨立,但可以通過Manager實現資料共享。 把所有實現了資料共享的比較便捷的類都重新又封裝了一遍,並且在原有的multiprocessing基礎上增加了新

Python學習【第21篇】:程序池以及函式 python併發程式設計之多程序2-------------資料共享及程序池和函式

python併發程式設計之多程序2-------------資料共享及程序池和回撥函式 一、資料共享 1.程序間的通訊應該儘量避免共享資料的方式 2.程序

Uncaught ReferenceError: jp2 is not defined用jsonp抓取qq音樂總是說函式沒有定義

問題如下參考連結:https://segmentfault.com/q/1010000010051040 用jsonp抓取qq音樂總是說回撥函式沒有定義, 我的要實現時候的步驟 1。第一步 我要實現的目的 問題:如題 我的部分程式碼: import originJSON