簡體   English   中英

Codeigniter Ajax獲得404錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM