Codeigniter Ajax gets 404 Error
我在本地计算机上编写了一个运行良好的应用程序。我正在使用XAMPP,因此它正在运行Apache。
当我将应用程序上传到ubuntu测试服务器时,在ajax调用中出现404错误,而且我实在感到困惑。
我正在使用CodeIgniter 3.1.8。
控制器肯定在那里,.htaccess在我的本地计算机上运行良好。我检查了控制器文件名的大小写,情况很好。
这是ajax调用的javascript:
1 2 3 4 5 6 7 8 9 10 11 | function step2(){ var canShow = false; var cCode = $("#student_code").val(); $.ajax({ url:"/decide/ajaxStep2", data: {"student_code": cCode,"lang":"<?=$lang?>"}, method:"post", success: function(data){ } }); } |
控制器定义和适用的功能(只是为了表明它的存在...我认为内部代码不相关):
1 2 3 4 5 6 7 8 9 |
我已经读完了,并且看到了一些与routes文件相关的内容,但是我又回到了它在我的本地计算机上可以正常工作的事实。我认为这不是文件权限,因为index()方法运行良好。
我已经使用ajax了很多,而且以前从未遇到过此问题,因此,老实说,我不确定该在哪里查看。有什么想法吗?
像这样在ajax中使用
1 | url:"<?=base_url('decide/ajaxStep2');?>", |
或
1 | url:"<?=site_url('decide/ajaxStep2');?>", |
整个代码应该像这样
1 2 3 4 5 6 7 8 9 10 11 12 | function step2() { var canShow = false; var cCode = $("#student_code").val(); $.ajax({ url:"<?=base_url('decide/ajaxStep2');?>", data: {"student_code": cCode,"lang":"<?=$lang?>"}, method:"post", success: function(data){ } }); } |
您能否从步骤更改大写字母S并再次尝试输入小写字母url?我认为骆驼案已被您的框架所取代,希望对您有所帮助
在将Controller类命名为Decide时,文件名必须为Decide.php。即使您将文件命名为decision.php,您的应用程序仍可以在本地XAMPP环境中完美运行,但无法在实时服务器上运行。
您必须将大写字母放在文件名之前,以使其起作用。 Windows根本没有问题,因为它们不像Linux / Unix那样使用区分大小写的命名方式。因此,令人难以置信的是,如果您的Windows XAMPP本地主机服务器正在运行,并且将其上传到Linux / Unix XAMPP时仍然出现404错误,请先尝试使用大写字母,这样可能会节省一些时间。