解决跨域资源共享(Cross-Origin Resource Sharing,简称CORS)的问题,可以通过在 API 网关上配置相应的策略来实现。下面是一个使用 AWS API Gateway 的示例代码:
在 API Gateway 上创建一个新的 API,并添加一个 POST 方法。
在 POST 方法的集成请求中,选择 "HTTP"。
在集成请求的配置中,选择 "HTTP_PROXY" 作为集成类型,并填写目标 API 的 URL。
在集成请求的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Origin" 的自定义头,并设置其值为 "*",表示允许所有来源访问该 API。
在集成请求的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Headers" 的自定义头,并设置其值为 "*,Authorization",表示允许所有请求头及 Authorization 头访问该 API。
在集成请求的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Methods" 的自定义头,并设置其值为 "POST,OPTIONS",表示允许 POST 和 OPTIONS 请求方法访问该 API。
在集成请求的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Credentials" 的自定义头,并设置其值为 "true",表示允许 API 接受带有凭证(如 cookies、HTTP 认证或 TLS 客户端证书)的请求。
保存集成请求的配置。
在 POST 方法下方的 "Method Response" 部分,添加一个状态码为 200 的 "Response Model"。
在 POST 方法下方的 "Integration Response" 部分,选择状态码为 200 的 "Response Model"。
在 "Integration Response" 的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Origin" 的自定义头,并设置其值为 "*"。
在 "Integration Response" 的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Headers" 的自定义头,并设置其值为 "*,Authorization"。
在 "Integration Response" 的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Methods" 的自定义头,并设置其值为 "POST,OPTIONS"。
在 "Integration Response" 的 "HTTP Headers" 部分,添加一个 "Access-Control-Allow-Credentials" 的自定义头,并设置其值为 "true"。
保存并部署 API。
以上是一个基本的示例,通过在 API Gateway 上配置相关的请求和响应头,可以实现跨域资源共享。当然,具体的配置细节可能会因为使用的 API Gateway 平台而有所不同,上述示例是基于 AWS API Gateway 的配置方式。