在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”时,它会将我带到我的应用程序页面,并且所有数据库数据都可以正常工作。
答
您应该将您的ENV
设置为本地,以便您可以调试代码。
也许一个更快的解决方案为您将检查storage/logs/laravel.log
并查看最后一个堆栈跟踪,以便您可以确切地确定错误来自哪里。
我意识到我拼错控制器名称。但仍然存在问题。当我检查它是否是ajax请求时,我得到相同的错误。如果我直接从routes.php文件运行此检查,它会起作用。 'if(Request :: ajax()){return'ho'; }' –