$.post 回调函数callback不执行的解决

本文探讨了两种导致jQuery $.post方法回调函数不执行的原因,并提供了相应的解决方案。一种原因是发送的数据格式不符合JSON规范;另一种原因是PHP后台未正确输出响应数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://github.com/shentr/recruit/blob/main/README.md文章浏览阅读52次。【拼多多集团-PDD校园招聘】内推链接:https://careers.pddglobalhr.com/campus/grad?t=nXuS8kKTJ1,内推码:nXuS8kKTJ1。我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~) https://github.com/shentr/recruit/blob/main/README.md


我遇到过两种原因导致 $.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小时,尴尬。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值