我发现Codeigniter和AJAX请求“找不到页面”错误

时间:2013-08-02 12:53:25

标签: .htaccess codeigniter jquery controller

我正在使用CodeIgniter开发一个项目,但是在使用jQuery AJAX发送请求时遇到了问题。我的默认控制器是:

$route['default_controller'] = "test";

这是我的测试控制器:

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class test extends CI_Controller {

    function __construct() {
        parent::__construct();
    }
    public function login_with() {
        echo "1";
    }
}

这是我的AJAX请求:

$(function() {
    $('#login_with').click(function() {
        $.ajax({
            type: "post",
            url: "<?= base_url('test/login_with') ?>",
            data:"login=1",
            success:function(ajax_success){
                alert(ajax_success);
            }
        });
    });
});

最后这是我的.htaccess文件:

DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]

这里有什么问题?我发送请求时收到404页面未找到错误。

3 个答案:

答案 0 :(得分:1)

尝试site_url()喜欢

$.ajax({
        type: "post",
        url: "<?= site_url('test/login_with'); ?>",
        data:"login=1",
        success:function(ajax_success){
            alert(ajax_success);
        }
    });

尝试在回声之后退出

public function login_with() {
    echo "1";
    exit;
}

答案 1 :(得分:1)

首先检查您的网站是否已启用mod_rewrite 检查你的config / config.php中是否有这个

$config['index_page'] = ''

我建议你试试这个htaccess:

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

答案 2 :(得分:0)

试试这个

$(function() {
    $('#login_with').click(function() {
        $.ajax({
            type: "post",
            url: window.location.origin+"/test/login_with",
            data:"login=1",
            success:function(ajax_success){
                alert(ajax_success);
            }
        });
    });
});