【问题标题】:jquery ajax post 404 not found codeigniter debian [closed]jquery ajax post 404 not found codeigniter debian [关闭]
【发布时间】:2014-09-11 17:55:41
【问题描述】:

下午好,请先原谅我的英语,我想知道你能否帮助我解决这个错误。

我的 jquery-ajax-post 网址有误:

萤火虫中的错误是:

POST .../nomina4/login/validation 404 Not Found x 19ms

  1. 我使用 CodeIgniter + Apache + Debian

Apache2.conf

允许全部覆盖

  1. 服务器有内部和外部ip地址
  2. Codeigniter的配置文件为:
  $config['base_url'] = '/nomina4/';

  $config['index_page'] = '';
  1. 隐藏index.php的.htaccess配置

RewriteEngine On
RewriteBase /nomina4/
RewriteCond $1 !^(index\.php|images|styles|scripts|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /nomina4/index.php
</IfModule>
  1. 带有输入用户和密码的脚本,位于文件夹视图的 login_view.php 文件中。

$(document).ready(function() {

$("#btn").click(函数(事件) {

  event.preventDefault();

  $.ajax({
      url: '<?=base_url()?>login/validation',
      type: 'post',
      data: {user: $('#user').val()}
  })
  .done(function(data) {
      console.log(data);
  })
  .fail(function(data) {
      console.log(data);
  });

}); // 结束点击 BTN

}); // 结束准备

  1. 这是控制器

    class Login extends CI_Controller {
    
    function __construct(){
        parent::__construct();
    }
    
    public function index() {
        $data['container'] = 'login_view';
        $data['title'] = 'Iniciar Sesión';
        $this->load->view('template', $data);
    }
    
    public function validation() {
        $user = $this->input->post("user");
        echo json_encode($user);
    }
    

    }

尝试更改 .htaccess 并查看有类似错误但未找到解决方案的人。

感谢您的帮助。

代码端客户端:views/login_view.php

<link rel="stylesheet" href="<?=base_url()?>assets/css/login_style.css">
<!-- BEGIN LOGIN -->
<div class="login">
    <!-- BEGIN LOGO -->
<div class="logo">
    <!-- <a href="" class="brand"> -->
        <img src="<?=base_url()?>assets/img/logo.png" height="280px">
    <!-- </a> -->
</div>
<!-- END LOGO -->
<!-- BEGIN LOGIN -->
<div class="content">
    <!-- BEGIN FORM -->
    <form action="<?=base_url()?>login/validation" class="form-vertical login-form" method="post">
        <h3>Inicio de sesi&oacute;n</h3>
        <br>
        <div class="control-group">
            <div id="msg_user">
                <div class="input-icon left">
                <div class="input-group">
                      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                      <input type="text" name="user" id="user" class="input form-control" placeholder="Usuario" required>
                    </div>
                </div>
            </div>
            <br>
            <div id="msg_pwd">
                <div class="input-icon left">
                <div class="input-group">
                      <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                      <input type="password" name="pwd" id="pwd" class="input form-control" placeholder="Contrase&ntilde;a" required>
                    </div>
                </div>
            </div>
            <br>
            <button class="input btn pull-right" type="submit" id="btn">
            Ingresar
            <i class="glyphicon glyphicon-log-in"></i>
            </button>
            <br><br>
        </div>
    </form>
    <!-- END FORM -->
</div>
<!-- END LOGIN -->
<br>

<!-- BEGIN MESSAGE VALIDATION-->
    <div class="message_validation" id="message_validation">
        <div class="alert alert-danger" role="alert">
            <h5><strong>Mensaje de Error: </strong><div id="message"></div></h5>
        </div>
    </div>
<!-- END MESSAGE VALIDATION-->
</div>
<!-- END LOGIN -->

<!-- BEGIN ANIMATION -->
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

<script>
$(document).ready(function() {
    $("#btn").click(function(event) {
        event.preventDefault();
        console.log("base_url() = "+"<?=base_url()?>");
        $.ajax({
            url: '<?=base_url()?>login/validation',
            type: 'post',
            data: {user: $('#user').val()}
        })
        .done(function(data) {
            console.log(data);
        })
        .fail(function(data) {
            console.log(data);
        });

    }); // END CLICK BTN
}); // END READY
</script>
<!-- END ANIMATION -->

这是 Crtl + U

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="shortcut icon" type="image/x-icon" href="/nomina4/assets/img/logo_ico.jpg">
    <link rel="stylesheet" href="/nomina4/assets/bootstrap3/css/bootstrap.css">
    <title>WEBNÓMINAS</title>
</head>
<body><link rel="stylesheet" href="/nomina4/assets/css/login_style.css">
<!-- BEGIN LOGIN -->
<div class="login">
    <!-- BEGIN LOGO -->
<div class="logo">
    <!-- <a href="" class="brand"> -->
        <img src="/nomina4/assets/img/logo.png" height="280px">
    <!-- </a> -->
</div>
<!-- END LOGO -->
<!-- BEGIN LOGIN -->
<div class="content">
    <!-- BEGIN FORM -->
    <form action="/nomina4/login/validation" class="form-vertical login-form" method="post">
        <h3>Inicio de sesi&oacute;n</h3>
        <br>
        <div class="control-group">
            <div id="msg_user">
                <div class="input-icon left">
                <div class="input-group">
                      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                      <input type="text" name="user" id="user" class="input form-control" placeholder="Usuario" required>
                    </div>
                </div>
            </div>
            <br>
            <div id="msg_pwd">
                <div class="input-icon left">
                <div class="input-group">
                      <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                      <input type="password" name="pwd" id="pwd" class="input form-control" placeholder="Contrase&ntilde;a" required>
                    </div>
                </div>
            </div>
            <br>
            <button class="input btn pull-right" type="submit" id="btn">
            Ingresar
            <i class="glyphicon glyphicon-log-in"></i>
            </button>
            <br><br>
        </div>
    </form>
    <!-- END FORM -->
</div>
<!-- END LOGIN -->
<br>

<!-- BEGIN MESSAGE VALIDATION-->
    <div class="message_validation" id="message_validation">
        <div class="alert alert-danger" role="alert">
            <h5><strong>Mensaje de Error: </strong><div id="message"></div></h5>
        </div>
    </div>
<!-- END MESSAGE VALIDATION-->
</div>
<!-- END LOGIN -->

<!-- BEGIN ANIMATION -->
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

<script>
$(document).ready(function() {
    $("#btn").click(function(event) {
        event.preventDefault();
        console.log("base_url() = "+"/nomina4/");
        $.ajax({
            url: '/nomina4/login/validation',
            type: 'post',
            data: {user: $('#user').val()}
        })
        .done(function(data) {
            console.log(data);
        })
        .fail(function(data) {
            console.log(data);
        });

    }); // END CLICK BTN
}); // END READY
</script>
<!-- END ANIMATION --></body>
</html>

【问题讨论】:

  • 我想我理解了“Buenos días”,但其余文字没有这样的运气......
  • die('english please');
  • 我的 firebug 中有一个错误:post .../nomina4/login 404 not found 我正在使用 codeigniter + jquery ajax post 我的 ajax 不起作用,我编辑了 .htaccess 但什么也没有跨度>
  • 这个问题似乎是题外话,因为它不是用英文写的。在 StackOverflow 上发布的问题必须使用正确的英语拼写和语法编写。

标签: php jquery ajax codeigniter post


【解决方案1】:

CodeIgniter 的$config['base_url'] 有不同的用途——it determines base URL part,你可以从它的名字猜到。我已经有一段时间没有使用 CodeIgniter 了,但它应该会自行检测您的基本路径,并且当您使用 RewriteBase 时,它根本不应该接收您的路径基数。因此,请检查 CodeIgniter 是否正在为此路径加载,您的控制器类是否在适当的位置(文件夹)并且可由框架加载。

【讨论】:

猜你喜欢
  • 2019-04-06
  • 2011-11-09
  • 2018-03-12
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 2017-09-03
  • 2016-09-10
  • 1970-01-01
相关资源
最近更新 更多