Php codeigniter-jquery登录函数未调用/返回

Php codeigniter-jquery登录函数未调用/返回,php,jquery,ajax,login,codeigniter-2,Php,Jquery,Ajax,Login,Codeigniter 2,我的控制器中有一个登录函数,以前被调用过,但我做了一些更改,它就停止了 我有一个基本的登录,有两个用户名/密码输入和一个提交 //Javascript function initLogin(e) { e.preventDefault() var d = { user: $('#userName').val(), password: $('#password').val() } console.log('test')//gets r

我的控制器中有一个登录函数,以前被调用过,但我做了一些更改,它就停止了

我有一个基本的登录,有两个用户名/密码输入和一个提交

//Javascript

function initLogin(e) {
    e.preventDefault()
    var d = {
        user: $('#userName').val(),
        password: $('#password').val()
    }

    console.log('test')//gets returned

    $.post('/cms/login/',d,function(data) {
        console.log(data);//nothing returning
    },'json');
}
//控制器

class CMS extends CI_Controller {
    function __construct() {
        parent::__construct();

        $this->load->helper('url');
        $this->load->library('session');

        //$this->_check_if_logged_in();
    }

    private function _check_if_logged_in() {
        if (!$this->uri->segment(2) || $this->uri->segment(2) == 'login') return FALSE;
        if ($this->session->userdata('logged_in') != TRUE) redirect('/cms');
    }

    public function index() {
        if ($this->session->userdata('logged_in') == TRUE) redirect('/cms/home', 'refresh');

        $this->load->view('cms/log_in_view');
        $this->load->view('cms/parts/footer');
    }

    function login() {
        echo json_encode(array('test' => 'test'))//doesn't get echoed

        $data['user_name'] = $this->input->post('user');
        $data['pass_word'] = sha1($this->input->post('password'));

        $this->db->select('id');
        $res = $this->db->get_where('login',$data,1)->row_array();

        if (is_numeric($res['id'])) {
            $data['logged_in'] = TRUE;
            $this->session->set_userdata('logged_in',TRUE);
        }

        echo json_encode($res);
    }
}
基本上,我把所有我认为可能会妨碍回复的东西都注释掉了,但这与我所学到的东西背道而驰


我确信控制器中的登录函数不会被调用,即使我之前没有更改js中的任何内容或登录函数本身,它也不会被调用。我看到的一个缺陷是,如果没有找到行,
$res['id']
将使codeigniter打印出一个HTML错误,这会使json回显无法正常工作

如果(!empty($res)),请尝试

您可以使用Firebug控制台(Firefox中的插件)检查ajax请求给出的答案,以查看是否比json更多

编辑:

注意到这不是真正的问题。我会再读一遍

尝试将
类CMS扩展CI_控制器
更改为
类CMS扩展CI_控制器


那就是
CMS
->
CMS

嗯,尝试更改URL,我不知道这是否可行(因为它应该在控制台中返回一些错误消息,比如错误500)

使用“CMS”而不是“CMS”应该不是问题,但是你可以像@Robin Castlin指出的那样尝试

$.post('<?php echo site_url("cms/login");?>',d,function(data) {
        console.log(data);//nothing returning
    },"json");

不,显然你的第一个答案是正确的$没有找到res['id'],因此它最终会破坏整个函数。谢谢
$.post('http://www.yourwebsite.com/index.php/cms/login',d,function(data) {
        console.log(data);//nothing returning
    },"json");