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 相关文章推荐
js模拟弹出效果代码修正版
Aug 07 Javascript
jquery cookie插件代码类
May 26 Javascript
javascript:void(0)的作用示例介绍
Oct 28 Javascript
浅谈Javascript线程及定时机制
Jul 02 Javascript
node.js require() 源码解读
Dec 13 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
vue组件通信传值操作示例
Jan 08 Javascript
Vue2.0 实现页面缓存和不缓存的方式
Nov 12 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 Javascript
javascript this指向相关问题及改变方法
Nov 19 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
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下使用iconv需要注意的问题
2010/11/20 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
使用angular写一个hello world
2015/01/23 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python操作csv文件实例详解
2017/07/31 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
如何在python中写hive脚本
2019/11/08 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
商务主管岗位职责
2013/12/08 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
学习十八大演讲稿
2014/09/15 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
军事博物馆观后感
2015/06/05 职场文书
山楂树之恋观后感
2015/06/11 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers