首页 > 解决方案 > 在生产服务器上使用 Laravel 7 时出现 CORS 策略错误

问题描述

我在 Laravel 7 上,我得到了错误

Access to XMLHttpRequest at 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/lmvworker.min.js' from origin 'https://my.site.com' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'http://127.0.0.1:8000' that is not equal to the supplied origin.

它在本地主机上工作,但是当我在生产服务器上运行时出现错误。

我不明白为什么在生产服务器上将“Access-Control-Allow-Origin”标头设置为“http://127.0.0.1:8000”。

这是我的config/cors.php(我也尝试过 'paths' => ['*'])

'paths' => [],

'allowed_methods' => ['*'],

'allowed_origins' => ['*'],

'allowed_origins_patterns' => [],

'allowed_headers' => ['*'],

'exposed_headers' => false,

'max_age' => false,

'supports_credentials' => false,

http/内核.php

protected $middleware = [
    \Fruitcake\Cors\HandleCors::class,
    \App\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    \App\Http\Middleware\TrustProxies::class,
    \App\Http\Middleware\SetLocale::class
];

配置/app.php

'providers' => [

    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,
    Illuminate\Broadcasting\BroadcastServiceProvider::class,
    ...
    ...
    Fruitcake\Cors\CorsServiceProvider::class
],

标签: phplaravelcors

解决方案


注意:对于 allowed_origins ,您必须在不使用通配符时包含该方案,例如。['http://example.com', 'https://example.com']。您还必须考虑到在使用 allowed_origins_patterns 时该方案将存在。

参考:https ://github.com/fruitcake/laravel-cors#options


推荐阅读