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 相关文章推荐
TextArea设置MaxLength属性最大输入值的js代码
Dec 21 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
Jan 15 Javascript
JavaScript操纵窗口的方法小结
Jun 28 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
JavaScript实现快速排序的方法分析
Jan 10 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
node.js域名解析实现方法详解
Nov 05 Javascript
微信小程序实现星级评价
Nov 20 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
html中select语句读取mysql表中内容
2006/10/09 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
python友情链接检查方法
2015/07/08 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
节电标语大全
2014/06/23 职场文书
教师调动申请报告
2015/05/18 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
新年寄语2016
2015/08/17 职场文书
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang