【问题标题】:Method PUT is not allowed by Access-Control-Allow-Methods in preflight response. Firebase Cloud FunctionsAccess-Control-Allow-Methods 在预检响应中不允许方法 PUT。 Firebase 云函数
【发布时间】:2021-08-09 15:46:00
【问题描述】:

我有一个 Firebase 云函数端点,它将 PUT 请求转发到另一个 API 端点。我确实设置了这些Access-Control-Allow- 标头:

// src/middlewares/enableCORS.ts
export default function enableCORS(
  fn: (req: https.Request, res: e.Response) => Promise<void>
) {
  return async (req: https.Request, res: e.Response) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', '*');
    res.header(
      'Access-Control-Allow-Methods',
      'GET, POST, PUT, DELETE, OPTIONS'
    );
    res.header('Access-Control-Max-Age', '86400');

    if (req.method === 'OPTIONS') {
      res.end();

      return;
    }

    await fn(req, res);
  };
}
// src/index.ts
import enableCORS from './middlewares/enableCORS'

export const my_endpoint = https.onRequest(
  enableCORS(async (request, response) => {
    // Forward request
  })
);

但我从浏览器发出的请求仍然被 CORS 阻止。请帮忙。

【问题讨论】:

  • 你能分享一下你遇到了什么错误吗?

标签: typescript express google-cloud-functions


【解决方案1】:

回答我自己的问题:

我通过使用 esbuild 将分离的文件捆绑到单个 index.js 文件中解决了这个问题。

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 2016-03-11
    • 2019-04-28
    • 1970-01-01
    • 2018-10-31
    • 2019-09-29
    • 2017-01-11
    • 2018-11-05
    • 2017-07-02
    相关资源
    最近更新 更多