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 相关文章推荐
javascript 跨浏览器开发经验总结(五) js 事件
May 19 Javascript
javascript延时加载之defer测试
Dec 28 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
如何使用vuejs实现更好的Form validation?
Apr 07 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
js 毫秒转天时分秒的实例
Nov 17 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
axios 处理 302 状态码的解决方法
Apr 10 Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
Apr 25 Javascript
全网小程序接口请求封装实例代码
Nov 06 Javascript
vue生命周期钩子函数以及触发时机
Apr 26 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
PHP微框架Dispatch简介
2014/06/12 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP图片加水印实现方法
2016/05/06 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
JS中数组重排序方法
2016/11/11 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
python非递归全排列实现方法
2017/04/10 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
python如何实现异步调用函数执行
2019/07/08 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
Python中的__init__作用是什么
2020/06/09 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
专家推荐信范文
2015/03/26 职场文书
汽车车尾标语大全
2015/08/11 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js