skip to Main Content

I’m trying to return a view with some data in it with ajax

I tried like this:

            $.ajax({
            url: '/canvas',
            data:{
                size:data.drawing['canvas_size'],
                name: data.drawing['name'],
                id: data.drawing['id']
            }
           });`

and this is the route:

Route::get('canvas/{size}/{name?}/{id?}',[DrawingController::class,'canvas'])->name('canvas');

it just gives the 404 error,can you help me please?

2

Answers


  1. Either send the data in the uri using the route

    Route::get('canvas/{size}/{name?}/{id?}',[DrawingController::class,'canvas'])->name('canvas');
    

    like this

    .ajax({
        url: '/canvas/'+ data.drawing['canvas_size'] + '/' + data.drawing['name'] + '/' +  data.drawing['id'],
    });`
    

    Or send the data in the body / url query string using the route

    Route::get('canvas',[DrawingController::class,'canvas'])->name('canvas');
    

    using

    $.ajax({
        url: '/canvas',
        data:{
            size:data.drawing['canvas_size'],
            name: data.drawing['name'],
            id: data.drawing['id']
        }
    });
    

    and get the variable inside your controller with

    DrawingController

    public function canvas($request)
    {
        $size = $request->size;
        $name = $request->name;
        $id = $request->id;
    
        //...
    }
    
    Login or Signup to reply.
  2. Note: This answer will only work in a blade.php file.

    Route parameters are used for readable urls. Do this your request with request GET parameters. So update your route:

    Route::get('canvas',[DrawingController::class,'canvas'])->name('canvas');
    

    And use:

    url: "{{ route('canvas') }}"
    

    You can also follow a directive like this if you want to use it with route parameters. But putting variables from javascript here can mess things up:

    url: "{{ route('canvas', [$var1, $var2, $var3]) }}",
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search