2016-07-25 119 views
1

我是Laravel的新手。我試圖在我的laravel應用程序中發出一個AJAX請求,但我得到一個500(內部服務器錯誤)。 所以,這裏是我在.blade文件請求:在Laravel進行AJAX請求時獲取500錯誤

<script> 
     $(document).ready(function() { 
     $.ajaxSetup({ 
      headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
      } 
     }); 
     $('#getRequest').on('click', function() { 
      $.get('getMessages', function (data) { 
       $('#target').append(data); 
      }); 
     }); 
    }); 
    </script> 

我加入了.ajaxSetup以確保令牌不是這個問題的原因。所以,我在此.blade文件還鍵入以下標籤:

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

這裏是我的route.php文件:

Route::get('getMessages', '[email protected]'); 

這裏是我的控制器與事業的方法:

public function getMessages() 
{ 
    return "OK"; 
} 

這個問題對我來說很棘手,因爲我知道我可以在我的route.php文件中爲這個URI創建一個一致的函數,它會是同樣的事情。或不。我不知道,因爲如果我真的這樣做

Route::get('getMessages', function() 
{ 
    return "OK"; 
}); 

而不是指向一個控制器的方法,它的工作原理!但我需要它在控制器中工作。

當涉及到其他方法時,我的控制器運行正常,並且方法的名稱拼寫正確無處不在。

我在Windows上使用XAMPP。我將XAMPP設置爲僅與當前的Laravel應用程序一起工作,因此當我在瀏覽器中輸入「localhost」時,它會將我帶到我的應用程序頁面,並且所有數據庫數據都可以正常工作。

+0

我意識到我拼錯控制器名稱。但仍然存在問題。當我檢查它是否是ajax請求時,我得到相同的錯誤。如果我直接從routes.php文件運行此檢查,它會起作用。 'if(Request :: ajax()){return'ho'; }' –

回答

0

您應該將您的ENV設置爲本地,以便您可以調試代碼。

也許一個更快的解決方案爲您將檢查storage/logs/laravel.log並查看最後一個堆棧跟蹤,以便您可以確切地確定錯誤來自哪裏。