Codeigniter:通过 AJAX 调用 php 脚本时路由不起作用

Codeigniter : route doesn't work when calling php script through AJAX

我有一个 JS 文件,它使用相对路径调用 php 脚本。使用的路径在route.php.

中有匹配的路由

问题是当从 JS 文件调用 php 脚本时,路由似乎没有正确应用。 更准确地说,在 php 文件中,函数的参数 $1 和 $2 不包含预期值(示例如下)。

但是,直接在浏览器中使用url时,参数$1的值是正确的。

route.php

$route['ajax/quizz/(:any)'] = 'test/ajax/';

JS文件

var path        = 'ajax/quizz/load_items';  //path used for the AJAX query

Test.php

public function ajax($elt,$elt2 = "arg2"){

    switch($elt){
        case 'quizz' :
            echo "Shouldn't come here. Argument should be 'load_items':  ";
            //$this->ajax_quizz();
            break;

        case 'load_items'   :
            $this->load_items($this->input->post(null,true));
            break;

        case 'add_stats'    :
            $this->add_stats($this->input->post(null,true),$_SESSION['id']);
            break;

        default :
            echo 'Unknown ajax function '.$elt;
    }
}

预期行为

执行AJAX查询时,指定的路径(ajax/quizz/load_items)应该匹配路由ajax/quizz /(:any) 结果路径应该是 test/ajax/load_items.

因此,我们期望调用控制器 test,并执行函数 ajax,其中参数 $1 = load_items.

实际行为

通过AJAX调用时,从JS文件中,路径ajax/quizz/load_items效果如下:

通过浏览器直接访问

直接在浏览器中使用同一路径 (http://localhost/codeigniter/ajax/quizz/load_items) 时,我得到了预期的行为:

你知道我的问题可能来自哪里吗?

设置你的 js ajax 路径 full.Instead 使用 ajax/quizz/load_items 使用

http://localhost/codeigniter/ajax/quizz/load_items.