jQuery的ajax访问后台的函数,有时正常,有时报连接错误的问题总结
2016-06-10 00:00
561 查看
场景:优惠券领取,用户分为两种,1.没有另过优惠券的;2.领过优惠券的;领过优惠券的又分为当前优惠券是否过期。
jQuery:
没有领过优惠券的,去领优惠券是正常不会报错的。
领过优惠券,并且已经过期(过期就可以领新的优惠券),出问题,报连接错误,即ajax的回调函数是 error的function,输出领取失败~
问题的解决过程:
最初:我将问题定位在了前端的代码出错,但是我并没有 找到什么看得见的错误,将需要传递的参数都输出了,结果也是可以输出的。
然后,再去找该ajax访问的函数。
找的方法是:在每个小代码块的前头 echo 1;exit;逐个代码块调查,然后锁定在那一部分区域出问题,然后仔细检查:
发现是一个变量的前面多了一个$符号。
为什么会有时候可以,有时候又不可以呢?
原因分析:
该函数里面的代码是由多个if-else语句组成,访问没有问题的时候就是进入了,没有语法错误的代码里。而访问出错时就是进入了语法不规范的代码块里。
我特地做了个测试:
1.
2.
报错:
3.
报警告提示:
可以总结,php,尽管你的代码里面有语法不规范(不是致命错误),只要你的逻辑不执行这一部分代码,php是不会报错的。
出现ajax回调error函数,只要你的访问链接没有错,很大程度上你目标函数有语法错误,或语法不规范。
jQuery:
$("#btn-coupon").click(function(){ var busTeam =$(".busTeam").text().trim(); var account =$(".account").val(); $.ajax({ type:'POST', url:"xxxxxxxx", data:{ busTeam:busTeam, account:account }, cache:false, async:false, dataType: 'text', success:function(data){ //document.write(data);return false; alert(data); //document.write(data); }, error:function(data){ alert("领取失败~"); } }); });
没有领过优惠券的,去领优惠券是正常不会报错的。
领过优惠券,并且已经过期(过期就可以领新的优惠券),出问题,报连接错误,即ajax的回调函数是 error的function,输出领取失败~
问题的解决过程:
最初:我将问题定位在了前端的代码出错,但是我并没有 找到什么看得见的错误,将需要传递的参数都输出了,结果也是可以输出的。
然后,再去找该ajax访问的函数。
找的方法是:在每个小代码块的前头 echo 1;exit;逐个代码块调查,然后锁定在那一部分区域出问题,然后仔细检查:
发现是一个变量的前面多了一个$符号。
为什么会有时候可以,有时候又不可以呢?
原因分析:
该函数里面的代码是由多个if-else语句组成,访问没有问题的时候就是进入了,没有语法错误的代码里。而访问出错时就是进入了语法不规范的代码块里。
我特地做了个测试:
1.
if(1){ echo 123; }else { $$m =0; } // 会输出1,没有任何错误提示
2.
if(1){ echo 123; }else { $$ }
报错:
3.
if(0){ echo 123; }else { $$m =0; }
报警告提示:
可以总结,php,尽管你的代码里面有语法不规范(不是致命错误),只要你的逻辑不执行这一部分代码,php是不会报错的。
出现ajax回调error函数,只要你的访问链接没有错,很大程度上你目标函数有语法错误,或语法不规范。
相关文章推荐
- jQuery选择器-表单对象属性选择器示例
- jQuery选择器-表单选择器示例
- javaSc 4000 ript and jQuery 的学习之路之错误笔记day01
- jQuery实现<textarea>高度自适应,适用于td中的textarea
- jQuery选择器-子元素选择器示例
- jquery实现井字格游戏
- 电商之梳理JQuery相关知识---前端技术
- jQuery选择器-可见性选择器示例
- jQuery选择器-内容选择器示例
- jQuery选择器-简单选择器示例
- jQuery选择器-层次选择器示例
- JQuery 事件
- JQuery 选择器
- jquery实现购物车复选框总金额的变化以及全选和反选
- JavaScript-DOM和jQuery(初级入门)
- jQuery 重要的知识点归纳
- jQuery autocomplete实现仿搜索引擎文本自动补全自动完成插件
- jQuery EasyUI框架中的Datagrid数据表格组件结构详解
- 【转帖】jquery DataTables中文使用说明
- 弹出广告简洁的jquery特效