欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問題的解決方法

 更新時(shí)間:2016年08月15日 09:51:11   作者:xxfigo  
本文是小編給大家?guī)淼膉Query Ajax Post 回調(diào)函數(shù)不執(zhí)行的原因及解決方法,在本文最下面還給大家附加jquery Ajax 不執(zhí)行回調(diào)函數(shù)success的原因,這兩個(gè)問題都非常多見,感興趣的朋友一起看下吧

今天在寫一個(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)站的支持!

相關(guān)文章

最新評(píng)論