我一直在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 中找不到头文件