HTTPAPIs在API閘CORS道中設定 - Amazon API 网关

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

HTTPAPIs在API閘CORS道中設定

跨來源資源共用 (CORS) 是一項瀏覽器安全性功能,可限制從瀏覽器中執行的指令碼所起始的HTTP要求。如果您無法訪問您的API並收到包含的錯誤消息Cross-Origin Request Blocked,則可能需要啟用CORS。如需詳細資訊,請參閱什麼是CORS?

CORS通常需要建立可存取不同網域或來源上APIs託管的 Web 應用程式。您可以啟用CORS以允許API從託管在不同網域的 Web 應用程式向您發出要求。例如,如果您的託管API在上,https://{api_id}.execute-api.{region}.amazonaws.com/並且您想API從託管的 Web 應用程序調用您的example.com,則API必須支持CORS。

如果您CORS設定API,APIGateway 會自動傳送回應給預檢OPTIONS要求,即使您API的. OPTIONS 針對CORS要求,APIGateway 會將設定的CORS標頭新增至來自整合的回應。

注意

如果您進行設CORS定API,APIGateway 會忽略從後端整合傳回的CORS標頭。

您可以在CORS模型組態中指定下列參數。若要使用API閘道HTTPAPI主控台新增這些參數,請在輸入值後選擇 [新增]。

CORS標頭 CORS組態屬性 範例值

Access-Control-Allow-Origin

allowOrigins

  • https://www.example.com

  • * (允許所有來源)

  • https://* (允許以 https:// 開頭的任何來源)

  • http://* (允許以 http:// 開頭的任何來源)

Access-Control-Allow-Credentials

allowCredentials

true

Access-Control-Expose-Headers

exposeHeaders

日期, x-api-id,*

Access-Control-Max-Age

maxAge

300

Access-Control-Allow-Methods

allowMethods

GET, POST, DELETE, *

Access-Control-Allow-Headers

allowHeaders

Authorization、*

若要傳回CORS標頭,您的要求必須包含標origin頭。對於該OPTIONS方法,您的請求必須包含origin標頭和Access-Control-Request-Method標頭。

您的CORS配置看起來可能類似於以下內容:

CORS組態 HTTP APIs

配置CORSHTTPAPI具有$default路由和授權者

您可以啟用CORS和配置的任何路由的授權HTTPAPI。當您啟用CORS和授權$default路由時,有一些特殊的考量。$default 路由會擷取您未明確定義之所有方法和路由的請求,包括 OPTIONS 請求。要支持未經授權的OPTIONS請求,請向您API添加不需要授權的OPTIONS /{proxy+}路由,並將集成附加到路由。該 OPTIONS /{proxy+} 路由具有比 $default 路由更高的優先順序。因此,它使客戶端可以在API未經授權的情況下向您提交OPTIONS請求。如需有關路由傳送優先順序的詳細資訊,請參閱路由傳送 API 請求

CORSHTTPAPI使用 AWS CLI

您可以使用下面的更新 API 命令來啟用CORS請求。https://www.example.com

aws apigatewayv2 update-api --api-id api-id --cors-configuration AllowOrigins="https://www.example.com"

如需詳細資訊,請參閱 Amazon API 閘道第 2 版API參考資料CORS中的。