您的位置:首页 > Web前端 > JQuery

jQuery的ajax访问后台的函数,有时正常,有时报连接错误的问题总结

2016-06-10 00:00 561 查看
场景:优惠券领取,用户分为两种,1.没有另过优惠券的;2.领过优惠券的;领过优惠券的又分为当前优惠券是否过期。

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函数,只要你的访问链接没有错,很大程度上你目标函数有语法错误,或语法不规范。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: