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 load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
使用Raygun对Node.js应用进行错误处理的方法
Jun 23 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
JS实现合并json对象的方法
Oct 10 Javascript
jquery实现楼层滚动效果
Jan 01 jQuery
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
vue实现前端分页完整代码
Jun 17 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
thinkphp如何获取客户端IP
2015/11/03 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
前端性能优化建议
2020/09/17 Javascript
Python中的is和id用法分析
2015/01/26 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
简历的自我评价
2014/02/03 职场文书
绿色环保演讲稿
2014/05/10 职场文书
学习型班组申报材料
2014/05/31 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
民主生活会发言材料
2014/10/20 职场文书
销售内勤岗位职责
2015/02/10 职场文书
考试没考好检讨书
2015/05/06 职场文书
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js