在Laravel进行AJAX请求时获取500错误

问题描述:

我是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'; }' –

您应该将您的ENV设置为本地,以便您可以调试代码。

也许一个更快的解决方案为您将检查storage/logs/laravel.log并查看最后一个堆栈跟踪,以便您可以确切地确定错误来自哪里。