Ajax访问codeigniter控制器

时间:2013-03-08 12:42:44

标签: php codeigniter jquery http-status-code-404

使用我的控制器的JQuery Ajax方法时遇到一些问题。似乎它找不到控制器,我似乎无法摆脱index.php。

它在我的MAMP localhost上工作正常,但是当我上传项目直到webhost,apache 2.2.16(debian)。我的ajax无法访问控制器。

我一直收到这个错误:

 <title>404 Not Found</title>
 </head><body>
 <h1>Not Found</h1>
 <p>The requested URL /home/stud/xxxxx/public_html/revy/index.php/$ was not found on this
  server.    </p

Ajax,可以从位于codeigniter应用程序文件夹之外的文件访问和加载。

这是我收到的错误消息,

我的代码如下所示:

PHP:

public function loggInn_Ajax(){
    $response = '';
    if($this->input->post('ajax')){
        $this -> form_validation -> set_rules('brukernavn', 'Brukernavn',  
   'trim|required');
        $this -> form_validation -> set_rules('passord', 'Passord', 'required');

        if($this->form_validation->run()){

            $brukernavn = $this->input->post('brukernavn');
            $passord = $this->input->post('passord');
            $aktiveringskode = $this->input->post('aktiveringskode');

            if($aktiveringskode != ''){
                $aktivering = $this->bitauth->activate($aktiveringskode);

                if($aktiveringskode == FALSE){
                    $response = 'Feil aktiveringskode, om du har tastet 
                  riktigkode.Ta kontakt med systemansvarlig.';
                }
            }

            $remember_me = '';

            $res = $this->bitauth->login($brukernavn, $passord, $remember_me);

            if($res === 'inaktiv'){
                $response = 'inaktiv';
            } else if($res == TRUE){
                $response = 'ok';
            }else{
                $response = $this->bitauth->get_error();
            }

        }else{
            $response = validation_errors();
        }
    }
      echo $response;
    }

AJAX:

function loggInn() { 

brukernavn = $('#brukernavn').val();
passord = $('#passord').val();
husk_meg = $('#husk_meg').val();
aktiveringskode = $('#aktiveringskode').val();

sendLoggInnnData();
return false;

}

  function sendLoggInnnData(){

var logginn = {
    'brukernavn': brukernavn,
    'passord': passord,
    'husk_meg': husk_meg,
    'aktiveringskode': aktiveringskode,
    'ajax': 1
};

$.ajax({
    url : 'MetodeKontroller/loggInn_Ajax',
    type: 'POST',
    data: logginn,
    success:function(response) {
        if(response == 'inaktiv'){
            $('#aktiveringsfelt').html("<input name='aktiveringskode' 
       id='aktiveringskode' class='input-block-level' type='text' value='' required='required' 
      placeholder='Aktiveringskode' autofocus='autofocus' onblur='validerInput(this)'    
      maxlength='6' min='6'>");

            $('#aktiveringskode').focus();
        }else if(response == 'ok'){
            window.location.href = "SideKontroller";
        }else{
            $('#alerts').html(alert_error+response+'</div>');
        }
    }

});
    }

1 个答案:

答案 0 :(得分:0)

$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/ProjectFolderName';

试试这个

<?php 
var url = '<?php echo base_url();?>';
?>

并在ajax中使用此:

$.ajax({
    type:'POST',
    url:url+"MetodeKontroller/loggInn_Ajax",