Ajax GET 请求在 laravel 8 中失败

Ajax GET request fails in laravel 8

当我尝试使用教程发送 GET 请求时,它不起作用并以 500 内部服务器错误结束 我在论坛或Whosebug上搜索都找不到任何错误,而且我是初学者,请寻求您的帮助

这是我的看法ajax.blade.php

<html>
   <head>
      <title>Ajax Example</title>

      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>

      <script>
      $.ajax({
         type: "GET",
         url: "getmsg",
         success: function(data) {
             console.log(data);
         },
         error: function(data){
             console.log("fail");
         }
        });
      </script>
   </head>

   <body>
   </body>
</html>

这里是控制器class

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class aController extends Controller
{
    function index() {
      return response()->json(array('d'=> 'success'));
    }
}


这里是web.php Route::get('getmsg',[aController::class,'index']);

更新你的路线
use App\Http\Controllers\aController;

Route::get('/getmsg', [aController::class, 'index']);

Laravel 8 要求您提供控制器的完整路径,或者您可以定义一个默认命名空间来定位您的控制器,在您的 RouteServiceProvider.php

中定义以下内容
protected $namespace = 'App\Http\Controllers';

你应该得到控制器的响应。

首先检查您是否正在使用 jquery-3.2.1.slim.min.js,不支持 slim 版本,因此删除 slim 版本并将其替换为:

<script
  src="https://code.jquery.com/jquery-3.6.0.min.js"
  integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
  crossorigin="anonymous"
></script>

然后如果库 link 是正确的,检查 csrf、路由、数据等