【问题标题】:Getting 500 ERROR when doing an AJAX request in Laravel在 Laravel 中执行 AJAX 请求时出现 500 错误
【发布时间】:2016-07-26 12:41:35
【问题描述】:

我是 Laravel 的新手。我正在尝试在我的 laravel 应用程序中发出 AJAX 请求,但收到 500(内部服务器错误)。 所以,这是我在 .blade 文件中的请求:

    <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', 'PagesController@getMessages');

这是我的控制器,原因是方法:

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

这个问题对我来说很棘手,因为我知道我可以在我的 route.php 文件中为这个 URI 创建一个匿名函数,它会是同样的事情。或不。我不知道,因为如果我真的这样做了

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

它不是指向控制器的方法,而是有效!但我需要它在控制器中工作。

当涉及到其他方法时,我的控制器运行正常,并且方法的名称在任何地方都拼写正确。

我在 Windows 上使用 XAMPP。我将 XAMPP 设置为仅适用于当前的 Laravel 应用程序,因此当我在浏览器中输入“localhost”时,它会将我带到我的应用程序页面,并且所有数据库数据获取工作正常。

【问题讨论】:

  • 我意识到我拼错了控制器名称。但是还是有问题。当我检查它是否是 ajax 请求时,我得到了同样的错误。如果我直接从 routes.php 文件运行此检查,它就可以工作。 if (Request::ajax()) { return 'ho'; }

标签: ajax laravel-5


【解决方案1】:

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

也许对您来说更快的解决方案是检查 storage/logs/laravel.log 并查看最后的堆栈跟踪,以便您可以准确确定错误的来源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2021-03-26
    • 2018-04-01
    • 2019-01-19
    相关资源
    最近更新 更多