我有一个基于
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
中间件。我该如何解决这个问题?
这个问题你解决了吗? 我们在 gcp 云功能中也面临着确切的问题,我们部署了一个 http 功能,并且我们试图重定向到外部网站,但它根本没有重定向 即使重定向到 google.com 也不起作用