Fastify 框架中的跨域资源共享 (CORS) 设置方法

跨域资源共享 (CORS) 是一种 Web 应用程序安全机制,用于使一个域上的资源可以被另一个域访问。在 Fastify 框架中,我们可以通过设置特定的响应头来控制 CORS 行为。在这篇文章中,我们将深入探讨如何在 Fastify 应用程序中设置 CORS ,并提供一些示例代码。

设置 CORS

在 Fastify 应用程序中设置 CORS 非常简单。我们只需要使用 fastify-cors 插件,并在应用程序中注册它。首先,我们需要安装插件:

--- ------- ------------

现在,我们可以在应用程序中启用插件,并设置一些选项。这里,我们可以定制一些基本选项,如哪些来源、允许的方法和允许的头。我们还可以设置一些常见选项,如暴露 X-Requested-With 头和处理凭证。

----- ------- - ---------------------
----- ---- - ------------------------

---------------------- -
  ------- ----
  -------- ----------------------
  --------------- ----------------------------
---

以上代码将允许任何来源访问该应用程序,并且仅允许使用的 HTTP 请求方法为 GETPUTPOSTDELETE。此外,只有 Content-TypeAuthorization 请求头被允许,而其他头将被拒绝。默认情况下,所有响应将暴露出 X-Requested-With 头,并且不会处理凭证。

更多选项

除了上面提到的选项之外,我们还可以定制其他选项以满足特定需求。

maxAge

maxAge 选项指定在一个简单请求完成之前,上面设置的 CORS 规则要被缓存多长时间。这可以节省跨域请求中的预检测请求(OPTIONS 请求)的数量。该值是一个以秒为单位的数字。

---------------------- -
  ------- ----
---

以上代码将在两小时内缓存 CORS 规则。

optionsSuccessStatus

optionsSuccessStatus 选项指定响应预检请求的 HTTP 状态码。默认情况下,这是 204(无内容)。但是,我们可以使用这个选项定制预请求的响应代码,以返回适合您的应用程序逻辑的 HTTP 状态码。

---------------------- -
  --------------------- ---
---

以上代码将设置预检查请求的响应状态代码为 200。

preflight

preflight 选项允许您控制是否启用预检查功能。如果您的应用程序中不需要预检查,那么将该选项设置为 false 能够提高性能。

---------------------- -
  ---------- -----
---

以上代码将禁用预检查功能。

示例代码

这里是一个完整的 Fastify 应用程序示例,其中包括有助于理解 CORS 的示例代码。

----- ------- - ---------------------
----- ---- - ------------------------

---------------------- -
  ------- ----
  -------- ----------------------
  --------------- -----------------------------
  ------- -----
  --------------------- ----
  ---------- -----
---

---------------- ----- --------- ------ -- -
  ------ - ------ ------- --
---

-------------------- ----- -------- -- -
  -- ----- -
    -------------------
    ----------------
  -
  ------------------- --------- -- -------------
---

以上代码将启用 CORS ,并监听 3000 端口。当您尝试访问该应用程序时,您将看到如下输出:

------ --------- -- ---------------------

您可以使用任何 HTTP 客户端来访问应用程序的根路径,例如:

---- ----------------------

成功访问根路径将返回以下 JSON 响应:

- -------- ------- -

结论

在此文中,我们了解了如何在 Fastify 应用程序中设置 CORS ,以及如何使用 fastify-cors 插件做到这一点。您可以使用这些选项来自定义策略,以便让您的应用程序允许从其他源提供服务,同时仍然保持安全性。希望这篇文章能帮助您更好地理解 CORS ,并为实现安全、灵活的 Netlify 应用程序提供良好的指导。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672dd9baeedcc8a97c862513