Making AJax Request in Laravel 5

Are you new to LARAVEL 5? If you tried moving your project from Laravel 4 to 5, you might have had an issue with handling form data with Jquery. This is because Laravel 5 uses CSRF (Cross-Site Request Forgeries) token validation for security reasons.

To make this work, I had my view, script, route and controller files of my L4 project edited as below:

In the View file:

<form id="test-parameters" method="get" action="http://localhost:8000/tests/setParams">

     <input type="hidden" name="_token" value="{{ csrf_token() }}">

     <div class="form-group">

       <label for="test-name" class="control-label">Test Name</label>

       <input type="text" class="form-control" id="test-name">

     </div>

     <div class="form-group">

       <label for="test-description" class="control-label">Test Description</label>

       <textarea class="form-control" id="test-description"></textarea>

     </div>

</form>

In the Routes file:

Route::get( '/tests/setParams', [

    'as' => 'testparameters',

    'uses' => 'TestController@setParams'

]);

In the Controller file:

public function setParams(){

     //create new test

     $testname = Input::get('testname');

     $testdescription = Input::get('testdescription');

     return Response::json(

          [

              'success'       => true,

              testname        => $testname,

              testdescription => $testdescription

          ], 200);

}

In the jQuery Script:

var defineTest = $.ajax({

     url: "/tests/setParams",

     type: "GET",

     data:{

               '_token': CSRF_TOKEN,

               'testname':testname,

               'testdescription':testdescription

          },

     dataType: 'json'

});

defineTest.done(function(data){

     var testName = data['testname'];

     var testDescription = data['testdescription'];

     var stringResponse = "Creating Test: "+testName+"<br> Test Description: "+ testDescription;

     $(“#test-parameters”).html(stringResponse);

 });

defineTest.fail(function(data){

     //Handle your Exception Here.I just decided to log mine in console.

     //Do not log in production

     console.log(“Error with defineTest function ”);

});