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 学习第二章 编辑文本
Feb 19 Javascript
Script的加载方法小结
Jan 12 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
深入理解Javascript中的观察者模式
Feb 20 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
聊聊JS ES6中的解构
Apr 29 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读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php根据年月获取季度的方法
2014/03/31 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python装饰器的函数式编程详解
2015/02/27 Python
Python实现文件复制删除
2016/04/19 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
实例详解Python模块decimal
2019/06/26 Python
django框架两个使用模板实例
2019/12/11 Python
Python基于locals返回作用域字典
2020/10/17 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
货车司机岗位职责
2014/03/18 职场文书
教师产假请假条
2014/04/10 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android