skip to Main Content

I am a newbie to jquery and ajax and I am using laravel in my backend,"I must say the codes below works perfectly fine for just one of my pages but other pages I get the error above".
I tried to load my jquery datatables data via ajax so I performed a jquery ajax call to my route as below:

ajax:
    
        {
            type    : "get",
            url     : "{{URL::asset('AgencyExpenses')}}",
            dataType: "json",
        },
        columns: 
        [
            {"data":"id"},
            {"data":"agency_id"},
            {"data":"amount"},
            {"data":"date"},
            {"data":"description"},
            {"data":"address"},
            {
                "data": null,
                render: function(data,row,type){
                    return '<button class="btn btn-trans btn-sm btn-primary fa fa-pencil text-primary" data-toggle="collapse" data-target="#collapsable" ></button>'
                }
                
            },
            {
                "data": null,
                render: function(data,row,type){
                    return '<button class="btn btn-trans btn-sm btn-danger fa fa-trash text-danger"></button>'
                }
                
            },
        ],
        autofill: true,
        select: true,
        responsive: true,
        buttons: true,
        length: 10,
    }
    

my "web.php" route is:

Route::get('AgencyExpenses',[AgencyExpController::class, 'expense']);

and my controller returns this function:

public function expense()
{
    $expense = AgencyExp::all();
    return response()->json([
        'data' => $expense,
    ]);
}

but every time the page loads this message displays:
jquery datatable error

in network the fetch/xhr returns 404 status code with the following exceptions:

"", exception: "SymfonyComponentHttpKernelExceptionNotFoundHttpException",…}

2

Answers


  1. Chosen as BEST ANSWER

    I had to clear the routes cache by executing two command listed below:

    php artisan optimize
    

    and

    php artisan route:clear
    

  2. Named routes allow the convenient generation of URLs or redirects for specific routes. You may specify a name for a route by chaining the name method onto the route definition:

    Route::get('AgencyExpenses',[AgencyExpController::class, 'expense'])
        ->name('agency.expense');
    

    Try to change your AJAX URL :

    {
        type    : "get",
        url     : "{{ route('agency.expense') }}",
        dataType: "json",
    },
    

    PS : Don’t forget to clear route :

    php artisan route:clear
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search