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"
}
}
Para utilizá-los é necessário registrá-los no seu arquivo app/Http/Kernel.php.
protected $middleware = [
// other middleware ommited
\LaraCors\Cors\CorsMiddleware::class,
];
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
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"
Configure o arquivo com os domínios que dejeja liberar
config/cors.php
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);
});
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>