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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
js 浏览器事件介绍
Mar 30 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
jqGrid用法汇总(全经典)
Jun 28 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
Extjs 点击复选框在表格中增加相关信息行
Jul 12 Javascript
JavaScript中splice与slice的区别
May 09 Javascript
详解Node 定时器
Feb 26 Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 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单例模式应用详解
2013/06/03 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
Python学习资料
2007/02/08 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python正则表达式面试题解答
2020/04/28 Python
python实现list由于numpy array的转换
2018/04/04 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
如何在Python对Excel进行读取
2020/06/04 Python
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
构造方法和其他方法的区别
2016/04/26 面试题
幼儿园教研活动方案
2014/01/19 职场文书
期末自我鉴定
2014/01/23 职场文书
安全生产实施方案
2014/02/23 职场文书
网络宣传方案
2014/03/15 职场文书
五一晚会主持词
2015/07/01 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书