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 相关文章推荐
firefox浏览器下javascript 拖动层效果与原理分析代码
Dec 04 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
node简单实现一个更改头像功能的示例
Dec 29 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 Javascript
少女风vue组件库的制作全过程
May 15 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
Apr 07 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
node中modules.exports与exports导出的区别
2018/06/08 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简述Python中的进程、线程、协程
2016/03/18 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
旅游管理实习自我鉴定
2013/09/29 职场文书
安全标准化实施方案
2014/02/20 职场文书
教师求职自荐信范文
2015/03/04 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android
Java Redisson多策略注解限流
2022/09/23 Java/Android