使用 Hapi 实现 CORS:跨域资源共享

跨域资源共享(CORS)是一种允许网页客户端从跨域服务器获取或发送任何资源的机制。由于浏览器的同源策略,对于从一个域名访问服务器上的资源时,只有与源页面具有相同协议、端口和 host 的结果才会被正确地显示,而对于其他来源的请求,则会被禁止。Hapi 是一个 Node.js 的 Web 框架,它支持和实现了 CORS 。

Hapi 框架中的 CORS

Hapi 自带插件 hapi-cors 描述了如何处理跨域请求,它允许 web 应用程序可以访问所有资源。要将 CORS 支持添加到您的 Hapi 应用程序中,您需要使用 hapi-cors 插件 和添加哪些来源,可以使用 Hapi route 配置 CORS 来控制哪些请求是允许跨源访问的。

安装 hapi-cors 插件

您可以使用 npm 进行安装 hapi-cors 。打开终端并在项目的根目录中运行以下命令:

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

配置 CORS

现在,您可以在 Hapi 应用中配置 CORS 支持。打开您的应用程序入口文件(通常为 index.js ),导入 hapi-cors 插件并在 server.register() 函数中配置 hapi-cors。例如:

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

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

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

配置选项

在上面的代码中,我们使用以下选项来配置 CORS 支持:

  • origin:允许跨源访问的域('*' 表示允许所有域)。
  • headers:请求头允许修改的字段,例如 Authorization、Content-Type 和 If-None-Match。
  • credentials:指定浏览器是否应该发送包含凭据的请求(例如 cookie 代码中未使用)。
  • additionalHeaders:可空数组,可指定要在所有路由上添加的自定义响应标头。

实现示例

以下是完整的 Hapi 实现示例:

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

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

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

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

这个示例将使跨源请求只需使用以下路由就能访问:

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

config 中的 cors:true 选项指定此路由支持 CORS。

结论

在本文中,我们学习了如何在 Hapi 框架中配置 CORS 支持,了解了必要的选项,以及提供了一个基于 Hapi 实现的示例。通过实现 CORS 支持,您可以轻松地从任何源获取或发送资源,从而使您的 web 应用程序变得更加灵活和强大。

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