Сбой запроса Ajax GET в laravel 8

#php #jquery #ajax #laravel #get-request

#php #jquery #ajax #laravel #get-запрос

Вопрос:

когда я пытаюсь отправить запрос GET с помощью руководства, но он не работает и в итоге выдает ошибку 500 internal server, я не могу найти какую-либо ошибку, выполнив поиск на форуме или stackoverflow, а также я начинающий, пожалуйста, обратитесь за помощью

вот мое мнение 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>
 

вот класс контроллера

 <?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

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


 

вот web.php
Route::get('getmsg',[aController::class,'index']);

Комментарии:

1. Добро пожаловать в SO … проверьте журналы ошибок и узнайте, почему вы получаете ошибку 500

2. Обратите внимание, что вы вставили один и тот же код дважды.

3. Измените APP_DEBUG=true из вашего файла .env. и вернитесь сюда с сообщением об ошибке

4. возможно, можно попробовать добавить эту строку use AppHttpControllersaController; над вашим Route::get('getmsg',[aController::class,'index']); laravel 8, изменить пространство имен по умолчанию в route

Ответ №1:

Обновите свой маршрут с помощью

 use AppHttpControllersaController;

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

Laravel 8 требует, чтобы вы указали полный путь к контроллеру, или вы можете определить пространство имен по умолчанию, чтобы найти свои контроллеры таким образом, определите следующее в вашем RouteServiceProvider.php

 protected $namespace = 'AppHttpControllers';
 

Вы должны получить ответ от контроллера.

Ответ №2:

Сначала проверьте, используете ли вы jquery-3.2.1.slim.min.js , тонкая версия не поддерживается, поэтому удалите тонкую версию и замените ее на:

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

затем, если ссылка на библиотеку верна, проверьте наличие таких вещей, как csrf, маршрут, данные и т. Д.