没有“Access-Control-Allow-Origin”标头 - Laravel

新手上路,请多包涵

XMLHttpRequest 无法加载 http://myapi/api/rating 。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:8104 ”。响应具有 HTTP 状态代码 403。

我不知道为什么我不能提出 CORS 请求。我已经在这里安装了中间件,将它添加到全局http内核中,但它仍然不起作用。尝试根据 stackoverflow 建议创建自定义中间件,但这也不起作用。还尝试添加路由组。最后,我尝试在请求操作中手动设置响应标头。我真的被困住了-感谢您的帮助!

代码见: https ://gist.github.com/KerryRitter/0d7ababb7b9eb8d54f0ae55add9704a1

原文由 Kerry Ritter 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 763
2 个回答

如果您正在使用 Laravel 5.5Laravel 5.x 并面临同样的问题,例如 No 'Access-Control-Allow-Origin' header is present on the requested resource 。只需使用以下软件包并配置您的系统。

步骤1:

 composer require barryvdh/laravel-cors

第2步

您还需要将 Cors\ServiceProvider 添加到您的 config/app.php providers 数组中:

 FruitCake\Cors\CorsServiceProvider::class,

要允许 CORS 用于您的所有路由,请在 --- 的 $middlewareapp/Http/Kernel.php 类属性中添加 HandleCors 中间件:

全球使用:

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

对于中间件用途:

 protected $middlewareGroups = [
   'web' => [
       // ...
   ],

   'api' => [
        // ...
        \Fruitcake\Cors\HandleCors::class,
    ],
];

第 3 步

安装完成后,运行以下命令以发布供应商文件。

 php artisan vendor:publish --provider="Fruitcake\Cors\ServiceProvider"

希望这个答案可以帮助面临与我相同问题的人。

原文由 Rahul Hirve 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需添加它就可以了

header('Access-Control-Allow-Origin:  *');
header('Access-Control-Allow-Origin:  http://localhost:3000');
header('Access-Control-Allow-Headers:  Content-Type, X-Auth-Token, Authorization,
Origin');
header('Access-Control-Allow-Methods:  POST, PUT');

原文由 arman amirkamali 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题