Skip to content
Advertisement

Laravel 4 always returns HTTP status code 200

I have below code in error.php, which is triggered using App::abort(404, $error) in my controller. Still my response status code is 200(ok). I tried with various error codes like 400, 403

// NotFoundException handler
App::error(function(NotFoundException $e)
{
    $default_message = 'The requested resource was not found';

    return Response::json(array(
        'error' => $e->getMessage() ?: $default_message,
    ), 404);
 });

Advertisement

Answer

For anyone still googling this problem:

I was struggling with this problem for hours. For me the problem was caused by an issue with one of my controllers.

Check all of your controllers and make sure there are no spaces in front of the <?php tag. The <?php tag should be the very first thing in the file. A single space in front of the <?php tag in any of your controllers that are routed as such:

Route::controller('example', 'ExampleController');

Will cause all status codes to be 200.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement