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 相关文章推荐
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
根据json字符串生成Html的一种方式
Jan 09 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
jquery实现的下拉和收缩效果示例
Aug 21 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
KnockoutJs快速入门教程
May 16 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
对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
世界收音机发展史
2021/03/01 无线电
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python操作xml文件示例
2014/04/07 Python
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
python将时分秒转换成秒的实例
2019/12/07 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
广告词串烧
2014/03/19 职场文书
初中生毕业评语
2014/12/29 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技