'Ajax GET request fails in laravel 8
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']);
Solution 1:[1]
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.
Solution 2:[2]
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.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | mrcoder |
Solution 2 | Tyler2P |