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 ページが見つかりませんというエラーが表示されます。

4

3 に答える 3

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 に答える
1

site_url()のようにしてみてください

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

そして、echoの後にexitを入れてみてください

public function login_with() {
    echo "1";
    exit;
}
于 2013-08-02T12:55:41.380 に答える
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 に答える