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 相关文章推荐
jquery动态添加删除一行数据示例
Jun 12 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
客户端验证用户名和密码的方法详解
Jun 16 Javascript
JS正则匹配中文的方法示例
Jan 06 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
浅析Angular19 自定义表单控件
Jan 31 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
vue使用keep-alive保持滚动条位置的实现方法
Apr 09 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 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
php 购物车实例(申精)
2009/05/11 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
经典而简洁的婚礼主持词
2014/03/13 职场文书
新教师教学工作总结
2015/08/12 职场文书
医学会议开幕词
2016/03/03 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang