我遇到过两种原因导致 $.post 回调函数不执行,下面就来分享一下。
1.$.Post方法在Json方式下,必须用严格的Json格式才能进入回调, Json一般要求Key与Value都要用双引号,如果用Text方式,就没这样的要求了。看了这篇文章才顿悟
2. php的return 并不能response,必须要输出到页面。That is to say,后台response到前台,是将后台页面的输出response到前台。
for example:
function show($status,$message,$data){
$result=array(
'status'=>$status,
'message'=>$message,
'data'=>$data
);
//exit(json_encode($result)); //tag 1
return json_encode($result);
}
public function check(){
$username=$_POST['username'];
$password=$_POST['password'];
if(!trim($username)){
//echo show("1","用户名不能为空!"); //tag 2
return show("1","用户名不能为空!","");
//exit(show("1","用户名不能为空!","")); //tag3
}
}
这样回调函数是接收不到参数的,只有以某种形式输出才能response。
解决:
case1: tag1 这行注释去掉。其余可不变。
case2: tag2 这行注释去掉。其余可不变。或者直接 exit(show("1","用户名不能
为空!",""));
这点小问题搞了近2小时,尴尬。。