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 相关文章推荐
关于IE BUG与字符串截取substr的解决办法
Apr 10 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
JS+JSP checkBox 全选具体实现
Jan 02 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
详解javascript 变量提升(Hoisting)
Mar 12 Javascript
javaScript中indexOf用法技巧
Nov 26 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
PHP学习之字符串比较和查找
2011/04/17 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
python脚本替换指定行实现步骤
2017/07/11 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python并发编程之线程实例解析
2017/12/27 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
python调用自定义函数的实例操作
2019/06/26 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
django中ImageField的使用详解
2020/12/21 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
宿舍使用违章电器检讨书
2014/01/12 职场文书
法制宣传月活动方案
2014/05/11 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python