0

我正在使用 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 page not found 错误。

4

3 回答 3

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;
}
于 2013-08-02T12:55:41.380 回答
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]
于 2013-08-02T13:02:39.803 回答
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);
            }
        });
    });
});
于 2014-06-26T08:36:10.190 回答