jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問題的解決方法
今天在寫一個(gè)檢查用戶名的功能時(shí),使用的是jQuery.post( url, [data], [callback], [type] )這個(gè)函數(shù),但是發(fā)現(xiàn)其中的回調(diào)函數(shù)不能執(zhí)行。
先來看看我的代碼:
前臺(tái)代碼:
<script type="text/javascript"> function checkUser() { var user = $('#<%=txtUser.ClientID %>').val(); $.post('checkUser.ashx', { Action: "Check", Name: user }, function (data) { alert(data); }, "json"); } </script>
后臺(tái)代碼(checkUser.ashx):
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; string action = context.Request["Action"]; string user = context.Request["Name"]; string result = "{result: 0}"; switch (action) { case "Check": if (us.isExists(user)) { result = "{result: 1}"; } break; } context.Response.Write(result); }
但是怎么也不執(zhí)行回調(diào)函數(shù)中的alert(data)語句,經(jīng)過單步跟蹤,最后發(fā)現(xiàn)是返回的Json字符串有問題。
原來jquery中規(guī)定返回的JSON字符串的KEY要用引號(hào)括起來,如{"result": 1}這樣才可以。
下面再看下jquery Ajax 不執(zhí)行回調(diào)函數(shù)success的原因
jquery Ajax 不執(zhí)行回調(diào)函數(shù)success的原因:
$.ajax({ type: "post", contentType: "application/json", url: basePath+"pages/Tongji/disposeAgree.action?cepingitem="+cepingitem+"&userrelation="+userrelation, //data: {fenshu:8}, dataType: "json", success: function (result) { alert("操作成功"); }, error:function(response){ alert("error"); } });
如上,因?yàn)樵O(shè)置了屬性dataType:"json",故如果后臺(tái)返回的不是正確的JSON字符串,那么永遠(yuǎn)不執(zhí)行回調(diào)函數(shù)success,而只執(zhí)行error函數(shù)。要么返回正確的JSON字符串,要么把dataType屬性改為text
正確的返回JSON字符串如下:
pw.write("{\"name\":\"zs\"}"); pw.write("{\"name\":"+true+"}");
錯(cuò)誤的例子:
pw.write("{‘name':‘zs'}");
以上所述是小編給大家介紹的jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問題的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Jquery版本導(dǎo)致Ajax不執(zhí)行success回調(diào)函數(shù)
- jquery ajax的success回調(diào)函數(shù)中實(shí)現(xiàn)按鈕置灰倒計(jì)時(shí)
- jQuery Tips 為AJAX回調(diào)函數(shù)傳遞額外參數(shù)的方法
- jQuery AJAX回調(diào)函數(shù)this指向問題
- jquery中的ajax如何返回結(jié)果而非回調(diào)方式即為同順序執(zhí)行
- 使用jQuery中的when實(shí)現(xiàn)多個(gè)AJAX請(qǐng)求對(duì)應(yīng)單個(gè)回調(diào)的例子分享
- jquery ajax 向后臺(tái)傳遞數(shù)組參數(shù)示例
- Jquery中ajax方法data參數(shù)的用法小結(jié)
- 淺析jQuery Ajax請(qǐng)求參數(shù)和返回?cái)?shù)據(jù)的處理
- jQuery實(shí)現(xiàn)ajax回調(diào)函數(shù)帶入?yún)?shù)的方法示例
相關(guān)文章
Jquery 點(diǎn)擊按鈕自動(dòng)高亮實(shí)現(xiàn)原理及代碼
拓展一個(gè)點(diǎn)擊按鈕自動(dòng)高亮的原理很簡(jiǎn)單,在點(diǎn)擊的時(shí)候給元素加上一個(gè)自定義的attr,具體實(shí)現(xiàn)祥看本文2014-04-04創(chuàng)建公共調(diào)用 jQuery Ajax 帶返回值
請(qǐng)求Ajax 帶返回值,并彈出提示框提醒的實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-08-08jQuery實(shí)現(xiàn)簡(jiǎn)易聊天框
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)易聊天框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02jquery實(shí)現(xiàn)兼容IE8的異步上傳文件
這里給大家分享的是使用jQuery插件實(shí)現(xiàn)兼容IE8的異步上傳文件的代碼,效果非常不錯(cuò),有需要的小伙伴可以參考下。2015-06-06用jquery實(shí)現(xiàn)的一個(gè)超級(jí)簡(jiǎn)單的下拉菜單
這篇文章主要介紹了用jquery實(shí)現(xiàn)的一個(gè)超級(jí)簡(jiǎn)單的下拉菜單,需要的朋友可以參考下2014-05-05jQuery實(shí)現(xiàn)底部浮動(dòng)窗口效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)底部浮動(dòng)窗口效果,涉及jQuery事件響應(yīng)及頁面元素動(dòng)態(tài)變換的相關(guān)操作技巧,需要的朋友可以參考下2016-09-09jQuery中與toggleClass等價(jià)的程序段 以及未來學(xué)習(xí)的方向
昨天開始學(xué)jQuery,js是我前端設(shè)計(jì)技術(shù)的一塊心病,一直沒有找到很好的學(xué)習(xí)辦法。最近突然開悟,可以學(xué)jQuery呀,這個(gè)東西比較好學(xué)。2010-03-03