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 相关文章推荐
javascript获取dom的下一个节点方法
Sep 05 Javascript
js实现进度条的方法
Feb 13 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
javascript 解决浏览器不支持的问题
Sep 24 Javascript
用jmSlip编写移动端顶部日历选择控件
Oct 24 Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 Javascript
理解javascript中的闭包
Jan 11 Javascript
javascript数组拍平方法总结
Jan 20 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
js实现的在本地预览图片功能示例
Nov 09 Javascript
JavaScript中的this基本问题实例小结
Mar 09 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python输出指定月份日历的方法
2015/04/23 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
linux面试题参考答案(7)
2012/10/29 面试题
大学生应聘自荐信
2013/10/11 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
史上最牛辞职信
2015/05/13 职场文书
超级礼物观后感
2015/06/15 职场文书
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python