jquery ajax 调用失败的原因示例介绍


Posted in Javascript onSeptember 27, 2013

下面是一个完事的函数:

function ReLoadPromotion() { 
var A = parseFloat($("#pNormalTotal").html()) + parseFloat($("#pBarginTotal").html()); 
jQuery.ajax( 
{ 
url: "/ajax/OrderRedemption.aspx?vf=getlist", 
type: "POST", 
dataType: "json", 
data:{amount:A}, 
success: function (json) { 
$("#fittingProductList tr.tableItem").remove(); 
var data = json.list; 
$.each(data, function (i, n) { 
var id = n.pid; 
var row = "<tr id=\"trPromotin" + id + "\" class=\"tableItem\">"; 
row += "<td><input id=\"cbPromotionItem" + id + "\" type=\"checkbox\" value=\"" + n.pid + "\" name=\"promotionProduct\" title=\"" + n.price + "\" onclick=\"CalculateOrder()\" /></td>"; 
row += "<td><label for=\"cbPromotionItem" + id + "\">" + n.pname + "</label></td>"; 
row += "<td>满" + n.amount + "</td>"; 
row += "<td>" + n.price + "</td>"; 
row += "</tr>"; 
$("#fittingProductList").append(row); 
}); 
$("#promotionArea").slideDown(); 
CalculateOrder(); 
}, 
error: function (xml) { //alert(arguments[1]); 
var json = eval("(" + xml.responseText + ")"); 
$("#promotionArea").slideUp(); 
} 
}); 
}

很多的时候你调试时会发现直接跳到error,然后直接就跳过去了.success段没有被执行.其实这里所有的语句都没有问题,问题的关键在于返回值.如果返回值出错,他就不会执行success段.返回值出错有几种情况:

1.格式错误.这是比较简单的,比较常见的是多了一个逗号之类:如{"success":true,"list":[{},{},]}(最后多一个逗号)正常不会有这个,容易出错的时候是你用for语句时后面最后没处理那个逗号.

2.类型错误:这种错误最难找,如果没把握就用字符是最好的.比如:"success":true是可以的,"code":0,也可以.如果是"code":a123,就有问题,会出现转换错误.要这样才对:"code":"a123"

由于 jquery调试的时候会忽略错误,所以有时候会很抓狂.一个简单的方法是写error语句,加alert,错误会被捕捉到.

Javascript 相关文章推荐
js 巧妙去除数组中的重复项
Jan 25 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 Javascript
基于MVC方式实现三级联动(JavaScript)
Jan 23 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
Vue中的methods、watch、computed的区别
Nov 26 Javascript
element-ui组件table实现自定义筛选功能的示例代码
Mar 15 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
vue编写简单的购物车功能
Jan 08 Vue.js
写得不错的jquery table鼠标经过变色代码
Sep 27 #Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 #Javascript
jquery ready函数、css函数及text()使用示例
Sep 27 #Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 #Javascript
实现动画效果核心方式的js代码
Sep 27 #Javascript
javascript中call和apply方法浅谈
Sep 27 #Javascript
文本框回车提交与禁止提交示例
Sep 27 #Javascript
You might like
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
php制作动态随机验证码
2015/02/12 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
JavaScript解析JSON数据示例
2019/07/16 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
对Python3 * 和 ** 运算符详解
2019/02/16 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
在python中做正态性检验示例
2019/12/09 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
先进集体获奖感言
2014/02/13 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
承诺函格式模板
2015/01/21 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
Window server中安装Redis的超详细教程
2021/11/17 Redis