thinkphp5中,login获取不到后面控制器定义的数据

thinkphp5中,login获取不到后面控制器定义的数据

这是后面控制器的User.php的代码

<?php
namespace app\index\controller;
use app\index\controller\Base;
use think\Request;
class User extends Base
{
    public function login()
    {
      return  $this->view->fetch();
    }
    public function checkLogin(Request $request)
    {
        $status = 0 ;
        $result = '' ;
        $data = $request -> param();
        return ['status'=>$status,'message'=>$result, 'data'=>$data];
    }




}
?>

这是前端login的代码提交的代码,用了ajax

<script>
    $(function(){
        $("#login").on('click',function(event){
            $.ajax({
                type:"POST",
                url:"{url('checkLogin')}",
                data:$("form").serialize(),
                dataType:'json',
                success: function (data){
                        alert(data.status)
                }
            })
        })
    })
</script>

前端点击登录之后应该出来我前面定义好的status的值,但是现弹出来的对话框打印的个空值
不知道哪里没写对,求大神指点

阅读 3.6k
4 个回答

你看是不是ajax的url没写对,应该是user控制器下面的checkLogin方法,你默认的是user控制器吗

dataType定义了json, 但是你返回了一个数组

//return ['status'=>$status,'message'=>$result, 'data'=>$data];
$return = ['status'=>$status,'message'=>$result, 'data'=>$data];
echo  json_encode($return);

解决了,在url哪里,本在第二个括号里面缺少一个冒号。填上就可以解决了。谢谢各位大神

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题