Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

christopher's avatar

TokenMismatchException on AJAX Call

If i want to create an AJAX Call but i get the above error.

This is my little anker element:

$('#username').editable(function(e){
            $.ajax({
                    url: 'http://yeah.dev/backend/test',
                    type: 'POST',
                    pk: 1,
                    name: 'username',
                    title: 'Enter username'
                });
        });

My Route is just:

Route::group .....
....

Route::post('test', function() {

        if(Request::ajax()){
            return Response::json(array(
                'sucess' => true
            ));
        }

    });

I know there is the Middleware "verifycsrftoken" - Do i have to expand this middleware to check the token ?

Currently i have the token in the header of every page:

<meta name="csrf-token" content="<?= csrf_token() ?>">
0 likes
3 replies
0xMatt's avatar

You still need to pass the _token to the ajax request.

_token = $("meta[name='csrf-token']").attr('content');
1 like
dougsisk's avatar
Level 1

Put this in your jQuery before you make any requests. It will automatically insert your token on every request:

$.ajaxSetup({
    headers: {
        'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
    }
});

Then in your CSRF middleware add this before return parent::handle($request, $next):

if($request->ajax())
{
    \Input::merge([
        '_token' => $request->header('X-CSRF-Token')
    ]);
}
1 like

Please or to participate in this conversation.