jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問題的解決方法
今天在寫一個檢查用戶名的功能時,使用的是jQuery.post( url, [data], [callback], [type] )這個函數(shù),但是發(fā)現(xiàn)其中的回調(diào)函數(shù)不能執(zhí)行。
先來看看我的代碼:
前臺代碼:
<script type="text/javascript"> function checkUser() { var user = $('#<%=txtUser.ClientID %>').val(); $.post('checkUser.ashx', { Action: "Check", Name: user }, function (data) { alert(data); }, "json"); } </script>
后臺代碼(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要用引號括起來,如{"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",故如果后臺返回的不是正確的JSON字符串,那么永遠(yuǎn)不執(zhí)行回調(diào)函數(shù)success,而只執(zhí)行error函數(shù)。要么返回正確的JSON字符串,要么把dataType屬性改為text
正確的返回JSON字符串如下:
pw.write("{\"name\":\"zs\"}"); pw.write("{\"name\":"+true+"}");
錯誤的例子:
pw.write("{‘name':‘zs'}");
以上所述是小編給大家介紹的jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Jquery版本導(dǎo)致Ajax不執(zhí)行success回調(diào)函數(shù)
- jquery ajax的success回調(diào)函數(shù)中實(shí)現(xiàn)按鈕置灰倒計時
- jQuery Tips 為AJAX回調(diào)函數(shù)傳遞額外參數(shù)的方法
- jQuery AJAX回調(diào)函數(shù)this指向問題
- jquery中的ajax如何返回結(jié)果而非回調(diào)方式即為同順序執(zhí)行
- 使用jQuery中的when實(shí)現(xiàn)多個AJAX請求對應(yīng)單個回調(diào)的例子分享
- jquery ajax 向后臺傳遞數(shù)組參數(shù)示例
- Jquery中ajax方法data參數(shù)的用法小結(jié)
- 淺析jQuery Ajax請求參數(shù)和返回數(shù)據(jù)的處理
- jQuery實(shí)現(xiàn)ajax回調(diào)函數(shù)帶入?yún)?shù)的方法示例
相關(guān)文章
Jquery 點(diǎn)擊按鈕自動高亮實(shí)現(xiàn)原理及代碼
拓展一個點(diǎn)擊按鈕自動高亮的原理很簡單,在點(diǎn)擊的時候給元素加上一個自定義的attr,具體實(shí)現(xiàn)祥看本文2014-04-04創(chuàng)建公共調(diào)用 jQuery Ajax 帶返回值
請求Ajax 帶返回值,并彈出提示框提醒的實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-08-08jquery實(shí)現(xiàn)兼容IE8的異步上傳文件
這里給大家分享的是使用jQuery插件實(shí)現(xiàn)兼容IE8的異步上傳文件的代碼,效果非常不錯,有需要的小伙伴可以參考下。2015-06-06用jquery實(shí)現(xiàn)的一個超級簡單的下拉菜單
這篇文章主要介紹了用jquery實(shí)現(xiàn)的一個超級簡單的下拉菜單,需要的朋友可以參考下2014-05-05jQuery中與toggleClass等價的程序段 以及未來學(xué)習(xí)的方向
昨天開始學(xué)jQuery,js是我前端設(shè)計技術(shù)的一塊心病,一直沒有找到很好的學(xué)習(xí)辦法。最近突然開悟,可以學(xué)jQuery呀,這個東西比較好學(xué)。2010-03-03