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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 18 Javascript
checkbox 多选框 联动实现代码
Oct 22 Javascript
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
jquery 实现表单验证功能代码(简洁)
Jul 03 Javascript
JS 在指定数组中随机取出N个不重复的数据
Jun 10 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
深入理解JavaScript中的预解析
Jan 04 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
微信小程序实现随机验证码功能
Dec 20 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 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打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
document.getElementById介绍
2011/09/13 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
Vuex简单入门
2017/04/19 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
python logging模块的使用
2020/09/07 Python
python super()函数的基本使用
2020/09/10 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
理想演讲稿范文
2014/05/21 职场文书
通信工程求职信
2014/07/16 职场文书
推广活动策划方案
2014/08/23 职场文书
升学宴演讲稿
2014/09/01 职场文书
个人收入证明范本
2014/09/18 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
单位考核鉴定意见
2015/06/05 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技
MySQL自定义函数及触发器
2022/08/05 MySQL