提问人:gotiredofcoding 提问时间:5/1/2022 最后编辑:Hack-Rgotiredofcoding 更新时间:8/3/2023 访问量:1593
Cloud API Gateway 不允许使用 CORS
Cloud API Gateway doesn't allow with CORS
问:
我有连接到 的 Cloud Gateway API。
它适用于我生成的 API 密钥,但是当我将密钥限制为仅启用对我的特定域的访问时 - ,我开始在客户端上收到 CORS 错误。(它不受域限制)Cloud Function
example.com
所以我在控制台的文件中启用了 CORS,文件没有错误,但是当我使用密钥从我的域访问 API URL 时,我仍然收到 CORS 错误:config
https://project-xxxx.uc.gateway.dev/search?key=AIxxxxxxxxx
配置:
swagger: "2.0"
info:
title: projectapi
description: "data api"
version: "1.0.0"
schemes:
- "https"
host: "project-xxxxxxxx.apigateway.xxxxx-xxxxx.cloud.goog"
x-google-endpoints:
- name: "project-xxxxxxxx.apigateway.xxxxx-xxxxx.cloud.goog"
allowCors: True
paths:
"/search":
get:
description: "data"
operationId: "project"
x-google-backend:
address: https://us-central1-projectName.cloudfunctions.net/search
security:
- api_key: [key]
responses:
200:
description: "Success."
schema:
type: string
400:
description: "Invalid"
securityDefinitions:
api_key:
type: "apiKey"
name: "key"
in: "query"
My Cloud Function 确实允许 CORS,如果使用密钥中的链接直接调用,则效果很好。address
为什么此配置不允许网关的 CORS?
答:
0赞
gotiredofcoding
5/1/2022
#1
解决!
您不仅必须为您的域名启用密钥,还必须从列表中为您的特定 API 名称启用密钥,请转到APIs & Services => Credentials => API keys => your key => API restrictions => choose your API name from the list !
这允许从特定域访问函数 - 而无需使用 Balancer。
评论