我一直在codeigniter的ajax网址中找不到404错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我一直在codeigniter的ajax网址中找不到404错误相关的知识,希望对你有一定的参考价值。

即使在响应中的控制台中返回所需的响应,Ajax url仍会引发404未找到错误。

我已将该站点作为子域(http://example.org/codeigniter-folder/)托管。我在同一域(http://example.org/blog/)上也有一个wordpress网站。默认情况下,我已从托管公司强制重定向到(http://example.org/codeigniter-folder/)。因此,有两个.htaccess文件。一个在example.org中,另一个在codeigniter-folder中。我正在apache服务器上运行

example.org
-codeigniter-folder
--application
----controllers
------Welcome.php
----views
------common
--------top.php
--------bottom.php
--------header.php
--------footer.php
------welcome_message.php
------about.php
------events.php
--system
--assets
----js
------all js scripts

我上面列出的只是感兴趣的文件夹

这是welcome_message.php中的视图

<form name="volunteer_form" method="post" action="" class="volunter-form vol-form">

    <div class="alert alert-danger" style="display:none"></div>
    <div class="row">
    <div class="col-md-6">
        <div class="form-group">
        <input type="text" name="name" class="form-control" placeholder="Your Name">
        </div>
    </div>
    <div class="col-md-6">
        <div class="form-group">
        <input type="text" name="email" class="form-control" placeholder="Your Email">
        </div>
    </div>
        <input type="submit" name="submit" id="subbtn" class="btn btn-white py-3 px-5 btnsubmit" value="Send Message">
    </div>
</form>

这是底部,位于views / common / bottom.php中

<script src="<?php echo base_url(); ?>assets/js/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4"
 crossorigin="anonymous"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery-migrate-3.0.1.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/popper.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script>
<!-- <script src="<?php echo base_url(); ?>assets/mdb/js/mdb.min.js"></script> -->
<script src="<?php echo base_url(); ?>assets/js/jquery.easing.1.3.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery.waypoints.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery.stellar.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/owl.carousel.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery.magnific-popup.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/aos.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery.animateNumber.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/bootstrap-datepicker.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery.timepicker.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/scrollax.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
<script src="<?php echo base_url(); ?>assets/js/google-map.js"></script>
<script type="text/javascript">var baseurl = "<?php echo base_url(); ?>";</script>

<script src="<?php echo base_url(); ?>assets/js/custom.js"></script>
<script src="<?php echo base_url(); ?>assets/js/main.js"></script>

我张贴在底部,因为我感觉这些链接文件之一可能与我在下面编写的ajax块冲突

这里是Assets / js / custom.js中的JS

$("#subbtn").click(function(e)
    e.preventDefault();
    var name = $('input[name="name"]').val();
    var email = $('input[name="email"]').val();
    // var phone = $('input[name="phone"]').val();
    // var subject = $('input[name="subject"]').val();
    // var message = $('textarea[name="message"]').val();
    var formdata = name:name, email:email;

    $.ajax(
      url:baseurl+"ajax",
      type:"POST",
      data:formdata,
      dataType:"json",
      success:function()
          //console.log(response.success);
          alert(name);
      ,
      error:function()
          console.log("error");

      

    );
    alert(name);
  );

);

请您知道我已经尝试了url:“ ajax”,即使对该URL进行了硬编码,仍然无法正常工作。使用url:“ ajax”,我在控制台中也看到正确的响应。因此,我将继续发布.htaccess,即codeigniter-folder中的那个。

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

这是example.org中的那个


RewriteEngine on

RewriteCond %HTTP_HOST ^example\.org$ [OR]
RewriteCond %HTTP_HOST ^www\.example\.org$
RewriteCond %REQUEST_URI !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %REQUEST_URI !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %REQUEST_URI !^/\.well-known/pki-validation/[A-F0-9]32\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "http\:\/\/example\.org\/site" [R=301,L]

最后一个alert()有效。这意味着我的js可以工作,除了ajax块除外。当执行时,错误函数总是被执行]

这是我在Ajax.php中的控制器

class Ajax extends CI_Controller 

    public function __construct()
    
        parent::__construct();


    

  public function index()
  
    $response['success'] = $this->input->post('name').' '.$this->input->post('email');
    echo json_encode($response);
  



我想念的是什么?我该怎么做才能使Ajax正确解释URL?谢谢。

答案

而不是像这样注释js文件:

  <!-- <script src="<?php echo base_url(); ?>assets/mdb/js/mdb.min.js"></script> -->

尝试这样(这样将消除js文件的冲突)在回声之前添加#号

<!-- <script src="<?php #echo base_url(); ?>assets/mdb/js/mdb.min.js"></script> -->

以上是关于我一直在codeigniter的ajax网址中找不到404错误的主要内容,如果未能解决你的问题,请参考以下文章

由于 ?gclid=,Google Adwords 出现 Codeigniter 404 错误

MinGW gcc 在 /local/include 中找不到头文件

在 Visual Studio 项目目录中找不到头文件

Xcode Archive 在子项目中找不到头文件

javascript 中无法识别 Codeigniter 基本网址

codeigniter 中的 Ajax 表单验证