[英]Codeigniter Ajax gets 404 Error
我在我的本地機器上寫了一個完美運行的應用程序。 我正在使用XAMPP,因此它正在運行Apache。
當我將應用程序上傳到我的ubuntu測試服務器時,我在ajax調用上遇到404錯誤,老實說我很困惑。
我正在使用CodeIgniter 3.1.8。
控制器肯定在那里.htaccess在我的本地機器上工作正常。 我檢查了控制器的文件名的情況,它很好。
這是ajax調用的javascript:
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){
}
});
}
控制器定義和適用的功能(只是為了顯示它存在......我不認為內部代碼是相關的):
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Decide extends MY_Controller {
function ajaxStep2(){
//Code here
}
}
我已經完成閱讀,我看到一些與路徑文件相關的東西,但我又回到了它在我的本地機器上工作正常的事實。 我不認為它是文件權限,因為index()方法運行正常。
我經常使用ajax,之前從未遇到過這個問題所以我老實說不知道在哪里看這個。 有什么想法嗎?
在ajax中使用base_url()
或site_url()
,如下所示:
url: "<?=base_url('decide/ajaxStep2');?>",
要么
url: "<?=site_url('decide/ajaxStep2');?>",
整個代碼應該是這樣的
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並再次嘗試作為小寫網址嗎? 我認為駱駝案已被你的框架所取代,希望它有所幫助
在為Controller類命名時, 決定文件名必須是Decide.php 。 即使您將文件命名為decision.php,您的應用程序也可以在本地XAMPP環境中完美運行,但它不能在實時服務器上運行。
你必須把大寫字母放在文件名前面才能使它們起作用。 Windows完全沒有問題,因為它們不像Linux / Unix那樣使用區分大小寫的命名。 令人難以置信的是,如果您的Windows XAMPP本地主機服務器正在工作,並且當您將其上傳到Linux / Unix XAMPP並且您不斷收到404錯誤時,可以聽到這種情況,請先嘗試使用大寫字母,這可以節省您一些時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.