gilsonsouza/lara-cors

Laravel CORS Enable

v1.3.4 2017-05-17 14:29 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:26:10 UTC


README

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>