我的 cdk 项目的一部分是一个 Websocket,它获取由请求触发的 StepFunction 的输出POST。整个工作流程就像邮递员一样在 aws 控制台中运行。
但如果我在前端尝试它,我会收到 CORS 错误:
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
我已经像这样设置了 CORS 选项:
const api = new apigw.RestApi(this, `${props.devName}BookingApi`, {
// set up CORS
defaultCorsPreflightOptions: {
allowHeaders: [
'Content-Type',
'X-Amz-Date',
'Authorization',
'X-Api-Key',
'X-Amz-Security-Token'
],
statusCode: 200,
allowMethods: ['OPTIONS', 'GET', 'POST', 'DELETE'],
allowCredentials: true,
allowOrigins: Cors.ALL_ORIGINS
},
deploy: true
});
Run Code Online (Sandbox Code Playgroud)
如果我在 AWS 控制台中手动启用 CORS,我不会从前端收到 CORS 错误。代码中的CORS选项与我手动输入的相同。同样奇怪的是,即使我从前端收到 CORS 错误,WebSocket 也会发布 StepFunction 的输出。
我已阅读此内容 …