gilsonsouza/lara-cors

Laravel CORS Enable
690
Install
composer require gilsonsouza/lara-cors
Latest Version:v1.3.4
License:MIT
Last Updated:May 17, 2017
Links: GitHub  ·  Packagist
Maintainer: gilsonsouza

1. Dependência

Usando o composer, execute o comando a seguir para instalar automaticamente composer.json:

composer require gilsonsouza/lara-cors

ou manualmente no seu arquivo composer.json

{
    "require": {
        "composer require gilsonsouza/lara-cors": "^1.0"
    }
}

2. Middlewares

Para utilizá-los é necessário registrá-los no seu arquivo app/Http/Kernel.php.

 protected $middleware = [
        // other middleware ommited
    	\LaraCors\Cors\CorsMiddleware::class,
 ];

3. Provider (opcional)

Selecionar os domínios permitidos no Laraver-Cors em sua aplicação Laravel, é necessário registrar o package no seu arquivo config/app.php. Adicione o seguinte código no fim da seção providers

// file START ommited
    'providers' => [
        // other providers ommited
        \LaraCors\Cors\CorsServiceProvider::class,
    ],
// file END ommited

3.1 Publicando o arquivo de configuração (somente se tiver feito o passo 3)

Para publicar o arquivo de configuração padrão que acompanham o package, execute o seguinte comando:

php artisan vendor:publish  --provider="LaraCors\Cors\CorsServiceProvider"

4 Configurações (somente se tiver feito o passo 3, e 3.1)

Configure o arquivo com os domínios que dejeja liberar

config/cors.php

5 Requisições Ajax

Se estiver usando o guard do laravel e a autenticação via middleware (Authenticate), em suas requisições via ajax, adicione os seguintes parâmetros (nesse caso eu estou utilizando o ajax do jquery, mas utilize o método que preferir, somente lembre de adicionar os parâmetros conforme definidos no seu método)

crossDomain : true,
xhrFields: {
    withCredentials: true
}

Ex.:

$.ajax({
    type: "GET",
    dataType: 'json',
    url: API_ENDPOINT,
    crossDomain : true,
    xhrFields: {
        withCredentials: true
    }
})
.done(function( data ) {
    console.log(data);
});

6 Bônus

Caso seu servidor seje apache, talvez seja necessário adicionar estas linhas abaixo ao .htaccess

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    </IfModule>

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

634,760,849 9,707
laravel/framework

The Laravel Framework.

584,532,650 34,931
laravel/tinker

Powerful REPL for the Laravel framework.

493,838,477 7,443
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

408,553,772 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

387,976,821 4,658