`express.redirect` 不会使用 Google Chrome 进行重定向

问题描述 投票:0回答:1

我有一个基于

express
的函数部署为 GCP Cloud Function。 我想在我的路线之一中重定向到外部网站。考虑我的以下代码:

apiRouter.use(
  "/docs/asyncapi",
  asyncHandler(async (req, res) => {
    const asyncapi = await createUnifiedApi("./src/schemas/asyncapi.yml");
    // digging into AsyncAPI Studio code, we can utilize query params
    // https://github.com/asyncapi/studio/blob/150b7ad148459715bb97138a9af98e8d39032889/src/services/navigation.service.ts#L71
    const params = new URLSearchParams({
      readOnly: "true",
      base64: Buffer.from(JSON.stringify(asyncapi)).toString("base64"),
    }).toString();
    res.redirect("https://studio.asyncapi.com/?" + params);
  }),
);

通过

functions-framework
和 Google Chrome 进行测试时,一切正常。 部署时,我收到
Found. Redirecting to ...
网页,其中从未发生重定向。请参阅以下内容:

转到 Chrome DevTools,这是我在重定向工作时得到的响应:

这是当它没有时:

主要区别是

Location
标头由于某种原因在访问已部署的函数时被省略。

我会补充一点,这个 GCP 函数是公开可用的,并且我还为

cors
添加了
express
中间件。我该如何解决这个问题?

express redirect google-cloud-functions
1个回答
0
投票

这个问题你解决了吗? 我们在 gcp 云功能中也面临着确切的问题,我们部署了一个 http 功能,并且我们试图重定向到外部网站,但它根本没有重定向 即使重定向到 google.com 也不起作用

© www.soinside.com 2019 - 2024. All rights reserved.