Почему мой .htaccess перенаправляет меня на домашнюю страницу в запросе поста ajax? - PullRequest
0 голосов
/ 09 марта 2019

Hello Stackoverflow Community,

Я работал над codeigniter, я чувствовал необходимость связи между представлением и контроллером в данный момент. Я думал, что лучший способ будет сделать запрос поста AJAX. Вот где у меня был статус 403 http. Я искал решения в Интернете и нашел / использовал ответ @Tipihack с 6 голосами в stackoverflow ask . И запрос получает статус 200.

POST имеет следующий URL "http://localhost/project/controller/method", и проверочный код -> Сеть

Общее

Request URL: http://localhost/calendar/basecontroller/getagendadate
Request Method: POST
Status Code: 200 OK
Remote Address: [::1]:80
Referrer Policy: no-referrer-when-downgrade

Заголовки запроса

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Content-Length: 54
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: csrf_cookie_name=80c14ce169a5f8110be579a59693e058
Host: localhost
Origin: http://localhost
Referer: http://localhost/calendar/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
X-Requested-With: XMLHttpRequest

Заголовки ответа

Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Date: Sat, 09 Mar 2019 15:13:34 GMT
Keep-Alive: timeout=5, max=98
Server: Apache/2.4.38 (Win64) OpenSSL/1.0.2q PHP/5.6.40
Set-Cookie: csrf_cookie_name=c3d91845df538fa001c64267f440fc32; expires=Sat, 09-Mar-2019 17:13:34 GMT; Max-Age=7200; path=/
Transfer-Encoding: chunked
X-Powered-By: PHP/5.6.40

[Controller]

public function getAgendaDate(){
    $sql = 'select * from agenda';
    $result = $this->db->query($sql);
    $send = array('token' => $this->security->get_csrf_hash());

    if (!headers_sent()) {
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: ' . date('r'));
        header('Content-type: application/json');
    }
    exit(json_encode($send, JSON_FORCE_OBJECT));
}

[View]

$(document).ready(function() {
        //initialize CFG
        CFG = {
            url: '<?php echo $this->config->item('base_url');?>',
            token: '<?php echo $this->security->get_csrf_hash();?>',
            name: '<?php echo $this->security->get_csrf_token_name();?>'
        };

        // setup token
        $.ajaxSetup({data: {token: CFG.token}});
        $(document).ajaxSuccess(function(e,x) {
            var result = $.parseJSON(x.responseText);
            $.ajaxSetup({data: {token: result.token}});
        });
    }).
    // this request run when dispacher an onclick event
    $.ajax({
        url: "basecontroller/getagendadate",
        type: "POST", //send it through get method
        data: { 
            date: '02-02-2019'
        },
        success: function(response) {
            console.log(response);
        },
        error: function(xhr) {
            //Do Something to handle error
            console.log(xhr)
        }
    });

[Проблема] - Проблема в том, что в ответ на запрос я получаю весь код со страницы индекса. Следовательно, я предполагаю, что проблема должна быть с .htaccess.

[. Htaccess] весь код

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L]

Почему, когда я запрашиваю метод контроллера? Я перенаправлен на мою домашнюю страницу?

...