zoukankan      html  css  js  c++  java
  • 启用 CORS 支持意味着什么

    启用 CORS 支持意味着什么

    当浏览器接收非简单 HTTP 请求时,CORS 协议将要求浏览器在发送实际请求之前向服务器发送一个预检请求,并等待服务器的批准(或请求凭证)。预检请求 将向您的 API 显示为 HTTP 请求:

    • 包含一个 Origin 标头。

    • 使用 OPTIONS 方法。

    • 包含以下标头:

      • Access-Control-Request-Method

      • Access-Control-Request-Headers

    因此,为了支持 CORS,REST API 资源需要实施一个 OPTIONS 方法,该方法可以响应 OPTIONS 预检请求,该请求至少具有由 Fetch 标准强制执行的以下响应标头:

    • Access-Control-Allow-Methods

    • Access-Control-Allow-Headers

    • Access-Control-Allow-Origin

    启用 CORS 支持的方式取决于您的 API 的集成类型。

    为模拟集成启用 CORS 支持

    对于模拟集成,您可创建一个 OPTIONS 方法以将所需的响应标头(具有适当的静态值)作为方法响应标头返回,从而启用 CORS。此外,每个实际启用了 CORS 的方法还必须在至少其 200 次响应中返回 Access-Control-Allow-Origin:'request-originating server addresses' 标头,其中标头键的值设置为 '*'(任何源)或设置为允许访问该资源的源。

    为 Lambda 或 HTTP 非代理集成和 AWS 服务集成启用 CORS 支持

    对于 Lambda 自定义(非代理)集成、HTTP 自定义(非代理)集成或 AWS 服务集成,您可以通过使用 API Gateway 方法响应和集成响应设置来设置所需的标头。API Gateway 将创建一个 OPTIONS 方法并尝试将 Access-Control-Allow-Origin 标头添加到您现有的方法集成响应中。这并不总是有用,有时您需要手动修改集成响应来适当地启用 CORS。通常,这仅意味着手动修改集成响应将返回 Access-Control-Allow-Origin 标头。

    为 Lambda 或 HTTP 代理集成启用 CORS 支持

    对于 Lambda 代理集成或 HTTP 代理集成,您仍可以在 API Gateway 中设置所需的 OPTIONS 响应标头。然而,您的后端将负责返回 Access-Control-Allow-Origin 和 Access-Control-Allow-Headers 标头,因为代理集成不会返回集成响应。

    在 GET 方法上启用 CORS 后,如果资源中没有 OPTIONS 方法,则该方法将添加到资源中。OPTIONS 方法的 200 响应会自动配置为返回三个 Access-Control-Allow-* 标头,以完成预检握手。此外,默认情况下,实际 (GET) 方法还会配置为在 200 响应内返回 Access-Control-Allow-Origin 标头。对于其他类型的响应,如果您不希望返回 Cross-origin access 错误,您将需要手动对其进行配置,以返回带有“*”或特定源的 Access-Control-Allow-Origin' 标头。

  • 相关阅读:
    Power of Cryptography
    Radar Installation
    Emag eht htiw Em Pleh
    Help Me with the Game
    89. Gray Code
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/11628334.html
Copyright © 2011-2022 走看看