我正在使用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页面未找到错误。
答案 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);
}
});
});
});