首页 > 解决方案 > 服务器上的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,

];

标签: laravelubuntunginxlaravel-lighthouse

解决方案


我认为您的 Nginx 会覆盖标头,将以下内容添加到您的Location块中:

location {
  //...
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'X-Frame-Options' 'ALLOW-FROM *';
  //...
}

推荐阅读