laravel实现后端允许跨域访问 - 简书

1,安装跨域拓展包

composer require fruitcake/laravel-cors

2,添加中间件配置
在app\Http\Kernel.php中添加

protected $middleware = [
    // ...
    \Fruitcake\Cors\HandleCors::class,
];
protected $routeMiddleware = [
     // ...
     'cors' => \Fruitcake\Cors\HandleCors::class,
];

3,发布配置文件

php artisan vendor:publish --tag="cors"

4,修改cors.php配置文件为

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS Options
    |--------------------------------------------------------------------------
    |
    | The allowed_methods and allowed_headers options are case-insensitive.
    |
    | You don't need to provide both allowed_origins and allowed_origins_patterns.
    | If one of the strings passed matches, it is considered a valid origin.
    |
    | If array('*') is provided to allowed_methods, allowed_origins or allowed_headers
    | all methods / origins / headers are allowed.
    |
    */

    /*
     * You can enable CORS for 1 or multiple paths.
     * Example: ['api/*']
     */
    'paths' => ['api/*'],

    /*
    * Matches the request method. `[*]` allows all methods.
    */
    'allowed_methods' => ['*'],

    /*
     * Matches the request origin. `[*]` allows all origins. Wildcards can be used, eg `*.mydomain.com`
     */
    'allowed_origins' => ['*'],

    /*
     * Patterns that can be used with `preg_match` to match the origin.
     */
    'allowed_origins_patterns' => ['*'],

    /*
     * Sets the Access-Control-Allow-Headers response header. `[*]` allows all headers.
     */
    'allowed_headers' => ['*'],

    /*
     * Sets the Access-Control-Expose-Headers response header with these headers.
     */
    'exposed_headers' => ['*'],

    /*
     * Sets the Access-Control-Max-Age response header when > 0.
     */
    'max_age' => 0,

    /*
     * Sets the Access-Control-Allow-Credentials header.
     */
    'supports_credentials' => false,
];

5,在路由中使用,如

Route::group(['middleware' => ['cors']], function() {
    Route::post('setEmail', 'EmailController@setEmail');//保存email
    Route::get('getEmails', 'EmailController@getEmails');//获取email
    Route::get('getEmailByKey', 'EmailController@getEmailByKey');//获取email
});


原网址: 访问
创建于: 2021-05-10 11:18:29
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论