Я продолжаю получать ошибку 404, не найденную из URL AJAX в codeigniter - PullRequest
0 голосов
/ 30 сентября 2019

URL-адрес Ajax продолжает выдавать ошибку 404, не найденную, даже несмотря на то, что он возвращает желаемый ответ в ответной консоли.

Я разместил этот сайт как поддомен (http://example.org/codeigniter-folder/). У меня также естьWordPress сайт в том же домене (http://example.org/blog/). Я вынужден перенаправить на (http://example.org/codeigniter-folder/) по умолчанию от хостинговой компании., следовательно, есть два файла .htaccess. в папке codeigniter. Я работаю на сервере 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 i. написал ниже

вот JS в assets / js / custom.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]

Последнее предупреждение () работает. это означает, что мой 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? спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...