请求在 https 上工作,但由于 cors 而在 http 上被阻止?

Posted

技术标签:

【中文标题】请求在 https 上工作,但由于 cors 而在 http 上被阻止?【英文标题】:requests works over https but gets blocked over http due to cors? 【发布时间】:2020-05-06 08:40:10 【问题描述】:

我有一个后端服务器,里面有一些用 laravel 编写的 api 当我尝试通过 https 发出请求时,它工作正常 但是当我通过 http 发出相同的请求时,它会被 cors 阻止 说 Access-Control-Origin 不存在 这是正常行为还是服务器配置有问题?

附言服务器正在运行 apache

【问题讨论】:

我认为 API 和前端都应该在 https 或 http 上。混合它们会导致 CORS 错误。 我通过 ionic 应用客户端使用 api 离子应用程序是否在 https 上运行?它是否通过 https 向您的 API 发出请求? 如果它在 https 上发出请求,它可以工作,但我想通过 http 发出请求,因为我不想更新应用商店中的应用程序版本 【参考方案1】:

在 api.php 路由文件顶部添加这段代码:

注意:这是一个短期解决方案:

  header('Access-Control-Allow-Origin:  *');
  header('Access-Control-Allow-Methods:  POST, GET, OPTIONS, PUT, DELETE');
  header('Access-Control-Allow-Headers:  Content-Type, X-Auth-Token, Origin, Authorization');
  use Illuminate\Http\Request;

【讨论】:

感谢您的回答,但不幸的是这不起作用我已经使用 frutcake/laravel-cors 来处理 cors 请求,它可以在 https 上工作,但 http 请求被阻止

以上是关于请求在 https 上工作,但由于 cors 而在 http 上被阻止?的主要内容,如果未能解决你的问题,请参考以下文章

cors 在本地主机上工作,但不在生产上

CORS Post 请求在本地工作但不在服务器上

CORS 正在阻止 PUT、DELETE 和 POST 请求,但 GET 正在工作

CORS——跨域请求那些事儿

CORS——跨域请求那些事儿

Cors 阻止 Nginx 上状态为 403 的请求