被 CORS 政策阻止并没有解决! Laravel + Vuejs

Posted

技术标签:

【中文标题】被 CORS 政策阻止并没有解决! Laravel + Vuejs【英文标题】:Blocked by CORS policy is not solving! Laravel + Vuejs 【发布时间】:2020-11-15 08:35:09 【问题描述】:

访问 XMLHttpRequest 在 'http://phplaravel-421708-1325291.cloudwaysapps.com/api/data/testimonials' 来自原产地“http://localhost:8000”已被 CORS 政策阻止: 请求中不存在“Access-Control-Allow-Origin”标头 资源。

我正在使用 Laravel 和 Vuejs。

出现上述错误!!

我已经安装了这个包:https://github.com/spatie/laravel-cors#laravel

我在“创建自己的 CORS 配置文件”之前做过

在 bootstrap/app.php 中

我加了

header('Access-Control-Allow-Origin', '*');
header('Access-Control-Allow-Methods', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS');
header('Access-Control-Allow-Headers', 'Content-Type, Authorization');

但问题仍然存在....我现在必须做什么?

还创建了middleware

public function handle($request, Closure $next)

        return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS')
        ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');

Kernel.php 注册。但是没有什么对我有用!

【问题讨论】:

【参考方案1】:

确保您在$middlewareGroups 中注册您的中间件Kernel

然后尝试将它们添加到您的中间件

$headers = [
    'Access-Control-Allow-Origin'      => '*',
    'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
    'Access-Control-Allow-Credentials' => 'true',
    'Access-Control-Max-Age'           => '86400',
    'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With',
 ];

if ($request->isMethod('OPTIONS')) 
    return response()->json('"method":"OPTIONS"', 200, $headers);


$response = $next($request);

foreach ($headers as $key => $value) 
    $response->header($key, $value);


return $response;

【讨论】:

以上是关于被 CORS 政策阻止并没有解决! Laravel + Vuejs的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试使用 Axios 调用 Instagram API 时,我“被 CORS 政策阻止” [重复]

CORS 政策已被阻止我的子域

如何修复“评估已被 CORS 政策阻止:反应中没有“访问控制允许来源”

Cors 政策问题 Laravel youtube apache

被 CORS 政策阻止 - React - MangoPay

Laravel 7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”