laravel - 服务器上的cors问题,但不是本地主机上的问题
问题描述
我正在使用 lighthouse-php 作为 graphQL 包的 laravel 7 项目。
在 localhost 上一切正常,但在 Ubuntu 18.04 ec2 nginx 服务器上,它给了我 CORS 问题。
请注意:- 1)客户端和服务器都在http上。
2) 我的 cors.php
return [
/*
|--------------------------------------------------------------------------
| Cross-Origin Resource Sharing (CORS) Configuration
|--------------------------------------------------------------------------
|
| Here you may configure your settings for cross-origin resource sharing
| or "CORS". This determines what cross-origin operations may execute
| in web browsers. You are free to adjust these settings as needed.
|
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
*/
'paths' => ['api/*', 'graphql'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => false,
'max_age' => false,
'supports_credentials' => false,
];
解决方案
我认为您的 Nginx 会覆盖标头,将以下内容添加到您的Location
块中:
location {
//...
add_header 'Access-Control-Allow-Origin' '*';
add_header 'X-Frame-Options' 'ALLOW-FROM *';
//...
}
推荐阅读
- django - django频道redis关闭时间过长被杀
- ms-access - SSIS 脚本任务打开 MS Access 运行宏
- ios - Swift:无论用户单击哪个按钮操作,都会显示请求审核
- azure - Azure B2C 自定义属性固定长度
- java - 通过 Java 中的 FileOutputStream 写入的文件没有被 python 使用 AudioSegment.from_file 访问
- google-cloud-platform - 通过 Terraform 的 GCP SSL 代理负载平衡器
- python - SQLite 初学者 - 从 C.FETCHALL() 打印不同的行
- node.js - 是否存在 AWS 节点 Lambda 中的变量在调用之间持续存在的条件?
- c# - 使用源生成获取枚举字段属性
- swift - Swift 中的像素拾取