首页 > 解决方案 > 我应该在 nginx.conf 或 Laravel config/cors.php 中添加我的 CORS 标头吗?

问题描述

我目前正在为 laravel 应用程序配置我的 nginx 服务器并添加了 Access-Control-Allow-Origin 标头。突然,我的浏览器抛出一个错误,提示此键存在多个标头值。原来在 Laravel 中有一个 cors.php 配置可用。现在我有点困惑是否让这个头由php应用程序本身处理或者我的nginx服务器是否应该对此负责是一个好主意。

有没有关于如何处理这个问题的最佳实践?

标签: phplaravelamazon-web-servicesnginx

解决方案


使用 laravel cors 功能,您可以将 cors 标头附加到特定路由。但是你只能将它附加在 laravel 路由上,你的静态资产(如 css 文件、js、图像、字体等)不会被 cors 覆盖,因为它们是直接从文件系统访问而无需进入 laravel 应用程序的。

另一方面,如果你在 nginx 中设置 cors,它会影响所有请求(或根据你的配置)

因此,根据您的要求,您可以选择您需要的。如果您需要所有内容的 cors 标头,则需要通过 nginx 设置标头。如果您只需要某些特定路线的 cors(例如所有以 /api 开头的路线),那么您可以使用 laravel cors


推荐阅读