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 相关文章推荐
JS日历 推荐
Dec 03 Javascript
AutoSave/自动存储功能实现
Mar 24 Javascript
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
Web开发者必备的12款超赞jQuery插件
Dec 03 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
12个非常有用的JavaScript技巧
May 17 Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
基于JavaScript实现简单扫雷游戏
Jan 02 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
js常用排序实现代码
2010/12/28 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
子页向父页传值示例
2013/11/27 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
node中的session的具体使用
2018/09/14 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
Python修改文件往指定行插入内容的实例
2019/01/30 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python tornado修改log输出方式
2019/11/18 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
中文系师范生自荐信
2013/10/01 职场文书
房产代理公证处委托书
2014/04/04 职场文书
高中生班主任评语
2014/04/25 职场文书
给市场的环保建议书
2014/05/14 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
安全环保标语
2014/06/09 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
运动会跳远广播稿
2015/08/19 职场文书