jQuery Ajax Post 回调函数不执行问题的解决方法


Posted in Javascript onAugust 15, 2016

今天在写一个检查用户名的功能时,使用的是jQuery.post( url, [data], [callback], [type] )这个函数,但是发现其中的回调函数不能执行。

先来看看我的代码:

前台代码:

<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);
}

但是怎么也不执行回调函数中的alert(data)语句,经过单步跟踪,最后发现是返回的Json字符串有问题。

原来jquery中规定返回的JSON字符串的KEY要用引号括起来,如{"result": 1}这样才可以。

下面再看下jquery Ajax 不执行回调函数success的原因

jquery Ajax 不执行回调函数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");
}
});

如上,因为设置了属性dataType:"json",故如果后台返回的不是正确的JSON字符串,那么永远不执行回调函数success,而只执行error函数。要么返回正确的JSON字符串,要么把dataType属性改为text

正确的返回JSON字符串如下:

pw.write("{\"name\":\"zs\"}");
pw.write("{\"name\":"+true+"}");

错误的例子:

pw.write("{‘name':‘zs'}");

以上所述是小编给大家介绍的jQuery Ajax Post 回调函数不执行问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
再论Javascript的类继承
Mar 05 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
用js编写的简单的计算器代码程序
Aug 04 Javascript
移动端js触摸事件详解
Sep 18 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
对js eval()函数的一些见解
Aug 15 #Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 #Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 #Javascript
jQuery学习笔记之回调函数
Aug 15 #Javascript
纯css下拉菜单 无需js
Aug 15 #Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 #Javascript
js轮盘抽奖实例分析
Apr 17 #Javascript
You might like
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
对python 调用类属性的方法详解
2019/07/02 Python
python修改FTP服务器上的文件名
2019/09/11 Python
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
淘宝客服专员岗位职责
2014/04/11 职场文书
中职招生先进个人材料
2014/08/31 职场文书
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server