AJAX url显示404没有在服务器上找到,但在本地codeigniter工作?

byqmnocz  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(105)

我在codeigniter项目上工作,创建了一个基于 AJAX 的表单,其中国家、州和城市被ajax添加到我的表单中,这是我的ajax jquery函数

$('#country-dropdown').on('change', function() {
    var country_id = this.value;
    $.ajax({
        url: "<?=base_url();?>get-states",
        type: "POST",
        data: {
            countryId: country_id
        },
        success: function(result) {
            $("#state-dropdown").html(result);
            $('#city-dropdown').html('<option value="">Select State First</option>');
        }
    });
});

$('#state-dropdown').on('change', function() {
    var state_id = this.value;
    $.ajax({
        url: "<?=base_url();?>get-cities",
        type: "POST",
        data: {
            stateId: state_id
        },
        success: function(result) {
            $("#city-dropdown").html(result);
        }
    });
});

非常简单,这些是我的路线

$route['get-states']['post'] = 'backend/admin/others/Ajaxcontroller/getStates';
$route['get-cities']['post'] = 'backend/admin/others/Ajaxcontroller/getCities';

我的控制器

public function getStates()
    {
        $this->load->model('StateModel', 'states');

        $countryId = $this->input->post('countryId');
        $states = $this->states->getStates($countryId);
        
        $html = '<option>Select State</option>';
        foreach($states as $state) {
            $html .= '<option value="'.$state->id.'">'.$state->name.'</option>';
        }

        echo $html;
    }

    public function getCities()
    {
        $this->load->model('CityModel', 'cities');

        $stateId = $this->input->post('stateId');
        $cities = $this->cities->getCities($stateId);
        
        $html = '<option>Select City</option>';
        foreach($cities as $city) {
            $html .= '<option value="'.$city->id.'">'.$city->name.'</option>';
        }

        echo $html;
    }

我的模特

public function getStates($countryId)
    {
        $query = $this->db->query("SELECT id ,name FROM rvd_states WHERE country_id = $countryId ORDER BY name;");
        return $query->result();
    }

public function getCities($stateId)
    {
        $query = $this->db->query("SELECT id ,name FROM rvd_cities WHERE state_id = $stateId;");
        return $query->result();
    }

它在我的localhost中工作得非常非常好,但是当我把我的代码切换到生产时,这个相同的 AJAX 显示没有找到url
有什么想法或建议吗
当我在localhost时,我的url也没有变化,这个url返回数据

http://localhost/matrimonial/get-states

但当我在生产这个网址

https://host.com/matrimonial/get-states

返回404
我的htaccess文件

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

请帮忙

emeijp43

emeijp431#

发布您的.htaccess文件代码。
同时检查控制器文件名。在活动服务器上,控制器文件名的第一个字符应为大写。

相关问题