Ajax GET request fails in laravel 8

2.4k Views Asked by At

when i try to send a GET request with tutorial ,but its not working and end up with 500 internal server error I cant find any error by searching on forum or stackoverflow,and also i ma beginner, kindly seek your help

here is my view 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>

here is the controller class

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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


here is web.php Route::get('getmsg',[aController::class,'index']);

2

There are 2 best solutions below

0
On BEST ANSWER

Update your route with

use App\Http\Controllers\aController;

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

Laravel 8 requires you to provide a complete path to the controller or you can define a default namespace to locate your controllers like this, define following in your RouteServiceProvider.php

protected $namespace = 'App\Http\Controllers';

You should get a response from the controller.

0
On

Firstly check if you are using jquery-3.2.1.slim.min.js, slim version are not supported so remove slim version and replace it with:

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

then after if library link is correct check for things like csrf, route, data etc.