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 相关文章推荐
列表内容的选择
Jun 30 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
浅谈Angular 中何时取消订阅
Nov 22 Javascript
weebox弹出窗口不居中显示的解决方法
Nov 27 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
公众号SVG动画交互实战代码
May 31 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
写得不错的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使用curl存储cookie的示例
2014/03/31 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
PHP时间处理类操作示例
2018/09/05 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
python轻松实现代码编码格式转换
2015/03/26 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
python制作抽奖程序代码详解
2021/01/15 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书