【问题标题】:Ajax in Laravel 8 does not return dataLaravel 8 中的 Ajax 不返回数据
【发布时间】:2023-02-24 13:04:31
【问题描述】:

我是 Lavarel 8 和 Ajax 的新手,我一直在尝试编写一个简单的测试。该代码基本上可以正常工作,Laravel 或 Javascript 没有出现任何错误,但它似乎没有返回任何数据。

以下是我在 web.php 中的路由:

Route::get('foo', [mainController::class, 'foo']);
Route::get('get_foo', [mainController::class, 'get_foo']);

以下是在我的控制器中:

  public function foo() {
    return view('foo');
  }

  public function get_foo() {
    return "this is not a test";
  }

以下是我的刀片(foo.blade.php):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
  <script>
    $(document).ready(function () {
        $.ajax({
          headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          },
            method : 'GET', 
            url : "get_foo",
            dataType : 'json',
            success : function(result){
              console.log("The result is --> %o", result);
            }
        });
    }); 
  </script>
</head>
<body>
</body>
</html>

它应该做的是在开发人员的控制台打印“结果是 --> 这不是测试”,但是我没有得到任何输出。控制台显示一条成功的 XHR 消息,所以我假设 Ajax 有效。

我究竟做错了什么?

【问题讨论】:

    标签: ajax laravel-8


    【解决方案1】:

    好的,我在网上进行了更多搜索后偶然发现了答案。我不能只回复一个答案。我需要让 Laravel 知道我正在通过调用 Response 对象来回复 Ajax 请求,如下所示:

      public function get_foo() {
        return Response() -> json("this is not a test");
      }
    }
    

    现在我的控制台可以正确显示输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-14
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多