Spatie / Laravel cors在生产中的问题[重复]

Posted

技术标签:

【中文标题】Spatie / Laravel cors在生产中的问题[重复]【英文标题】:Spatie/Laravel cors issue in production [duplicate] 【发布时间】:2019-05-22 03:25:49 【问题描述】:

这个 cors 问题将是我的死亡。无论如何,我试图解决为什么 spatie/cors 包在本地工作但在生产中不起作用。如果有人有这方面的经验,我将不胜感激!我正在尝试访问我的后端,但收到警报提示

my url has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request

【问题讨论】:

你有类似 HTTP --> HTTPS 重定向的东西吗? 说实话我不确定。证书是使用LetsEncrypt 生成的,它没有给我任何证书的详细信息。 问题不在于证书,也不在于 Let's Encrypt。可能是您的网络服务器配置或应用程序试图将请求从 HTTP 重定向到 HTTPS。看看浏览器开发者工具中的网络面板——我猜你会看到那里的OPTIONS请求得到301/302响应。 我的控制台的网络选项卡中没有任何内容。当我刷新它只显示加载的资源。 如果控制台显示请求失败,则对应的网络选项卡中应该有 something。或许你可以分享网址? 【参考方案1】:

您的 URL https://aewcpa.traxit.pro/api/account 正在为 CORS OPTIONS 请求返回 301 重定向到 https://traxit.pro/api/account,这导致了此问题。

您可以在浏览器的网络控制台或使用 cURL 中看到这一点:

curl -I 'https://aewcpa.traxit.pro/api/account' -X OPTIONS -H 'Access-Control-Request-Method: GET' -H 'Referer: https://aewcpa.traxit.io/login' -H 'Origin: https://aewcpa.traxit.io'

HTTP/2 301 
server: nginx/1.15.6
date: Fri, 21 Dec 2018 18:14:36 GMT
content-type: text/html
content-length: 169
location: https://traxit.pro/api/account

【讨论】:

那么是我的 nginx 服务器上的配置问题还是我的项目代码?对不起,我对网络问题没有太多经验 https://aewcpa.traxit.pro/api/account 返回的重定向 HTML 看起来确实是 nginx 对我进行重定向。 Laravel 的重定向看起来不同。 好的,我正在使用 forge 来托管实际使用数字海洋的网站。数字海洋中有 nginx 服务器处理此类请求的选项吗? 我对 Forge 不是很熟悉,但我的理解是它会为你配置像 nginx 这样的东西。我怀疑它配置为根据 APP_URL 的值规范化您的 URL 的地方发生了什么事。 是的,我不知道。我只是不明白为什么它会在我当地的环境中工作而不是在生产中。我已尝试将 url 明确放置在我的访问源中,没有任何变化。

以上是关于Spatie / Laravel cors在生产中的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

CORS、Laravel Valet 和 Socket.io

laravel-用户活动以及模型变动日志-spatie/laravel-activitylog

Laravel 5.7 + Spatie 权限 + JWT 身份验证

如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色

它是如何工作的 ?使用 Spatie/laravel-cronless-schedule 自定义的 Laravel 时间表

Spatie/Newsletter:Laravel 5.6 中提供的 MailChimp 无效 MailChimp API 密钥