gilsonsouza/lara-cors

Laravel CORS启用

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

This package is not auto-updated.

Last update: 2024-09-14 19:31:15 UTC


README

使用composer,执行以下命令自动安装composer.json

composer require gilsonsouza/lara-cors

或者手动在您的composer.json文件中安装

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

2. 中间件

为了使用它们,需要在您的文件app/Http/Kernel.php中注册。

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

3. 提供者(可选)

在Laravel-Cors中为您的Laravel应用程序选择允许的域名,需要在您的文件config/app.php中注册此包。在providers部分的末尾添加以下代码

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

3.1 公开配置文件(仅当您已执行第3步时)

为了公开随包附带的默认配置文件,请执行以下命令

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

4 配置(仅当您已执行第3步和第3.1步时)

配置文件,指定您允许的域名

config/cors.php

5 Ajax请求

如果您正在使用Laravel的guard和通过中间件(Authenticate)进行的认证,在您的Ajax请求中,请添加以下参数(在此情况下我正在使用jQuery的Ajax,但请使用您偏好的方法,只需记住按照您的方法定义添加参数即可)

crossDomain : true,
xhrFields: {
    withCredentials: true
}

例如:

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

6 附加功能

如果您的服务器是Apache,可能需要在以下行中添加到.htaccess文件

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