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 相关文章推荐
Code:loadScript( )加载js的功能函数
Feb 02 Javascript
JavaScript 滚轮事件使用说明
Mar 07 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
Apr 10 Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 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的QRcode类与大家分享
2011/11/13 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
python实战教程之自动扫雷
2018/07/13 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
会计毕业生自我鉴定
2013/11/04 职场文书
促销活动总结报告
2014/04/26 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
学生保证书
2015/01/16 职场文书
论文答辩开场白大全
2015/05/27 职场文书