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 相关文章推荐
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
js indexOf()定义和用法
Oct 21 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 Javascript
JavaScript获取一个范围内日期的方法
Apr 24 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 Javascript
vue.js路由mode配置之去掉url上默认的#方法
Nov 01 Javascript
JavaScript实现4位随机验证码的生成
Jan 28 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实现验证码功能
2006/10/09 PHP
php中in_array函数用法分析
2014/11/15 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
php实现简单爬虫的开发
2016/03/28 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
js兼容标准的表格变色效果
2008/06/28 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
js单例模式的两种方案
2013/10/22 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
js性能优化技巧
2015/11/29 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
js实现电灯开关效果
2021/01/19 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python生成随机图形验证码详解
2017/11/08 Python
详解Python自建logging模块
2018/01/29 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
python switch 实现多分支选择功能
2020/12/21 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
新教师个人工作总结
2015/02/06 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书