Laravel 和 axios 安装在其他子域 CORS 问题上

Posted

技术标签:

【中文标题】Laravel 和 axios 安装在其他子域 CORS 问题上【英文标题】:Laravel & axios install on other subdomain CORS issue 【发布时间】:2021-11-30 04:53:48 【问题描述】:

[Laravel 8、vue 2、axios]

我在 app.subdomain.domain.com 上安装了一个 vue 应用,在 subdomain.domain.com 上安装了 laravel 后端。一切正常。

我在 app.subdomain2.domain.com 上创建了另一个并行安装,在 subdomain2.domain.com 上创建了 laravel,即使我使用相同的 vue 前端和相同的 laravel 后端,我仍然遇到 CORS 问题。

我使用相同的 repo 安装了后端,git pull(只有一个分支),并部署了相同的 js 文件。我什至做了一些更改来测试并推送到两个安装,第一个仍然工作正常,第二个不是。

我看到的 Axios 很好,后端只是没有添加“Access-Control-Allow-Origin”标头。

尝试配置 cors,在受信任的阵列上添加两个子域,没有任何效果。

通过执行 git checkout 然后 composer install 完成第二次安装。

我是不是做错了什么?!在这里发疯。

PS laravel 安装附带 \Fruitcake\Cors\HandleCors::class

稍后编辑:在第二次安装时,axios 不添加任何授权标头(它在登录后设置它,但在安装 1 时它发送授权空白,在安装 2 时根本不发送它)- 不确定这是否可能是一个问题,也可能不是......

更新:仔细查看请求,OPTIONS 具有 cors 标头...跟进选项的 POST 请求没有...到底是什么

【问题讨论】:

【参考方案1】:

首先要检查,看看 .env 文件中的 APP_URL 是否设置为正确的子域。 Laravel 在很多地方都使用了这条路径,也许你还在使用旧应用程序中的路径,这可能会导致 CORS 问题。

【讨论】:

在两者上都将其设置为'localhost' - 我现在将更改为install.subdomain.com,但我不确定这是问题所在。我已经用 axios 更新了这个问题

以上是关于Laravel 和 axios 安装在其他子域 CORS 问题上的主要内容,如果未能解决你的问题,请参考以下文章

React Axios 的 Laravel 8 CORS 问题

如何在子域共享主机上安装 laravel

通过多个 Laravel 5 安装跨子域共享身份验证会话

子域上的 Laravel 存储链接

Laravel 部署共享主机子域

如何在 Cpanel 的子域 lumen/laravel 上安装免费 SSL?