为AWS ApiGateway设置带有Claudia-Api-Builder的HTTP选项响应

时间:2018-01-03 17:22:32

标签: node.js http aws-lambda aws-api-gateway claudiajs

我正在尝试为Access-Control-Allow-Methods设置options标头,目前看来 claudia-api-builder 无法设置http选项响应,就像GET请求一样。请参阅下面的GET示例。

获取示例

api.get('/hard-coded-headers', function () {
   return 'OK';
}, {success: {headers: {'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS'}}});

此外......

如果此标头值是通过aws-api-gateway -> resources -> OPTIONS > Integration Response设置的,那么如果您要执行claudia update,它将被覆盖回其默认状态,如下所示。

AWS-ApiGateway Custom mapping response setting

claudia-api-builder文档显示它支持API网关自定义错误响应,但没有成功。

我希望能够像处理GET请求一样设置选项自定义标头响应。这可能吗?

2 个答案:

答案 0 :(得分:2)

您是否尝试过new ApiResponse()功能?

api.get('/programmatic-headers', function () {
  return new api.ApiResponse('OK', {'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS'}, 200);
});

答案 1 :(得分:1)

跨源资源共享(CORS)是一种机制,它使用其他HTTP标头让用户代理获得从与当前正在使用的站点不同的源(域)上的服务器访问所选资源的权限。

您可以保证对域(或多个),http动词或contentType

的许可
res.header('Access-Control-Allow-Origin', 'example.com');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');