我有一个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阻止。请帮助。
回答我自己的问题:
我通过使用esbuild将分隔的文件捆绑成一个index.js文件来解决这个问题。