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' 标头。

  • 相关阅读:
    BZOJ 1630/2023 Ant Counting 数蚂蚁
    BZOJ 3997 组合数学
    BZOJ 2200 道路与航线
    BZOJ 3181 BROJ
    BZOJ 4011 落忆枫音
    BZOJ 4027 兔子与樱花
    vijos 1741 观光公交
    vijos 1776 关押罪犯
    vijos 1780 开车旅行
    5、异步通知机制
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/11628334.html
Copyright © 2011-2022 走看看