Laravel cors 无法在 Apache 服务器上运行

Posted

技术标签:

【中文标题】Laravel cors 无法在 Apache 服务器上运行【英文标题】:Laravel cors not working on Apache server 【发布时间】:2019-09-11 19:46:44 【问题描述】:

我有一个 laravel api 应用程序,在 localhost (IIS) 上一切正常,我可以成功执行 GET 请求,我在 Apache 服务器上有相同的应用程序突然我的 api 抛出一个 CORSenter code here 错误,我是使用 laravel-cors 插件

我尝试过允许 .htaccess 文件中的标头无济于事。

以下是我的 kernel.php 的截断版本

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        //'cors' => \App\Http\Middleware\Cors::class,
        //'cors' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'cors' => \Barryvdh\Cors\HandleCors::class,

    ];

【问题讨论】:

你能给我们一个错误的例子吗? 从源“localhost:4200”访问“http:/xxxxx.com/api/dummy/”处的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。 【参考方案1】:

谢谢。我通过将标头直接包含在控制器中的方法/函数中来使其工作。

....    
$response->headers->set('Content-Type', 'application/json');
$response->headers->set('Access-Control-Allow-Origin', '*');
return $response;

有点老套,但现在必须做

【讨论】:

以上是关于Laravel cors 无法在 Apache 服务器上运行的主要内容,如果未能解决你的问题,请参考以下文章

Laravel cors不在Apache服务器上工作

Laravel:为静态文件添加 Cors 标头

无法在 Laravel 5 中为特定路线添加 CORS

Laravel Sanctum + Nuxt JS 我无法通过 CORS

无法在 Laravel API 中启用 CORS?

CORS问题无法解析jquery,laravel 5.2