Google App Engine Node JS:启用CORS和

时间:2017-09-18 12:07:37

标签: javascript node.js angular google-app-engine nginx

我现在在Google App Engine和带有Express API的NGINX上有2天的CORS问题:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource

虽然我配置了Express CORS module,但仍然会收到错误消息。这是我的配置:

const app = express();
const corsWhiteList = [
  'https://mysite',
  'https://www.mysite',
  'http://localhost:4200'
];
const corsOptions = {
  origin: (origin, callback) => {
    if (corsWhiteList.indexOf(origin) !== -1) {
      callback(null, true);
    } else {
      callback(new Error('Not allowed by cors'));
    }
  },
  credentials: true,
  preflightContinue: true,
  optionsSuccessStatus: 200, 
  allowedHeader: ['Content-Type', 'Authorization']
};

app.use(cors(corsOptions));
app.options('*', cors(corsOptions));

我也尝试设置router.use(),但它没有效果。 我已使用cors-config.json

gsutil文件设置到我的存储桶中
[
  {
    "origin": ["https://mysite", "https://www.mysite"],
    "responseHeader": ["Content-Type"],
    "method": ["GET", "HEAD", "DELETE"],
    "maxAgeSeconds": 3600
  }
]

在我的开发环境中,CORS模块工作正常:例如,如果我将CORS白名单更新为不匹配的白名单。我甚至尝试过CORS的模块基本配置,但结果相同:传入开发,生产失败。

以下是dev中请求的屏幕截图以及prod中的错误:

Dev successfull Access-Allow-Cross-Origin headers

Prod Allow-Origin headers error

另一个猜测是在Nginx中启用CORS但it appears that it's not configurable

问题:

  • 是适合部署Node API服务器的Google App Engine吗?

  • 有谁知道如何解决这个问题? 感谢

0 个答案:

没有答案