Back end validation as front end validation
You should separate it in different functions.
Here is how you can have validation in different functions and use it in both places - for creating posts and for front-end validation. Besides you should extract this validation logic elsewhere, it's bad to put such logic in your controller.

public function postValidateStore()
{

    $requestValidation = $this-&gt;validateStore();

    if($requestValidation !== true){

       die($requestValidation);
    }

    die(json_encode(['success' =&gt; 1]));

}


/**
 * @return mixed
 */
public function postStore()
{

    $requestValidation = $this-&gt;validateStore();

    if($requestValidation === true){

        // create new user in DB
        $this-&gt;createPostFromParams($this-&gt;formParams);

        Session::put('success', 'Successfully created a post.');

    } else {

        Session::put('failure', 'Error creating post.');
    }

    return redirect('posts');
}

/**
 * @return bool|false|string
 */
private function validateStore()
{

    $parameters = $this-&gt;formParams;
    $validationRules = [
        'title'     =&gt; 'required|alnum',
        'content'   =&gt; 'required',
    ];

    // if validation fails return back with error messages
    if ($this-&gt;validatorFails($parameters, $validationRules)) {

        return json_encode(['errors' =&gt; $this-&gt;getValidatorErrors($validationRules)]);
    }

    return true;
}




function isValid() {

var formIsValid = false;
var fields = jQuery.param({
title: $('#post-title').val(),
content: $('#post-content').val()
});

$.ajax({
    async: false,
    type: "POST",
    url: "/posts/ValidateStore",
    data: fields,
    dataType: 'json',
    success: function(result){


        if(typeof result.success == "undefined"){

            var messages = [];

            $.each(result.errors, function( index, value ) {
                messages.push('&lt;br&gt;' + value);
            });

            bootbox.alert("&lt;strong class='text-danger'&gt;" + messages + "&lt;/strong&gt;");

        } else {

            formIsValid = true;
        }

    }

});

return formIsValid;
}