npm 包 hapi-cors-headers 使用教程

阅读时长 5 分钟读完

前言

随着前端开发技术的日新月异,现在的前端工程师已经不仅仅是写写页面和样式那么简单了。更多的时候,我们需要设计后端服务接口,搭建本地服务器,甚至还需要深入底层,对服务器的运行状态进行监控。而 hapi-cors-headers 这个 npm 包,是帮助我们处理跨域问题的常用工具。

什么是跨域?为什么需要处理跨域问题?

跨域指的是,因为浏览器的同源策略(Same-Origin Policy),所以在请求不同域名、协议或端口的资源时,会被浏览器阻止。这就是跨域问题。

为什么需要处理跨域问题呢?很简答,因为我们的前后端代码可能不在同一台机器上、不在同一个服务器上,前端页面想要调用后端的数据或接口,就需要跨域。而 hapi-cors-headers 这个 npm 包,就是处理跨域问题的一个工具。

好的,接下来,我们就一步步学习如何使用 hapi-cors-headers 这个工具。

hapi-cors-headers 实战

第一步,安装 hapi-cors-headers

在我们的 node 项目中使用 npm 安装 hapi-cors-headers:

第二步,添加跨域配置

在我们的 hapi 项目中,添加跨域配置,如下所示:

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

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

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

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

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

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

-------

这里,我们使用了 async/await 和 Hapi 项目,如果你还没使用过,建议去了解一下。

你会发现,我们添加了一个 HapiCorsHeaders 的插件,options 参数就是 hapi-cors-headers 的配置,默认开启了所有的跨域请求并允许自定义请求头。

第三步,验证跨域请求

我们打开另一个前端项目,测试一下我们的跨域请求。

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

通过浏览器的控制台,你会发现我们成功发起了一次跨域请求,并成功获取了数据。现在,你已经成功使用 hapi-cors-headers 解决了跨域问题。

深入学习 hapi-cors-headers

上面,我们讲解了如何在 hapi 项目中使用 hapi-cors-headers 这个 npm 包。如果你还想深入了解 hapi-cors-headers,我们提供以下几点参考:

调整跨域策略

hapi-cors-headers 插件默认开启所有跨域请求并允许自定义请求头。但是,有时候,我们需要更灵活的跨域策略。比如,只允许某些域名进行跨域请求,或者只允许某些请求头。

针对这种需求,可以直接传入 allowOrigins 和 allowHeaders 数组,自定义解决跨域策略。

关闭跨域

有时候,我们的项目在特殊情况下,需要暂时关闭跨域。比如,我们的前端代码在本地,已经没有跨域问题了,而服务接口在服务器上,还需要处理跨域问题。

这种情况下,我们可以在关闭跨域时,通过传入 false 或 null 实现:

hapi-cors-headers 的其它参数

除了上述参数之外,hapi-cors-headers 还有其他参数,比如:

  • allowCredentials:是否允许携带 cookie,默认为 false。

  • exposeHeaders:设置响应头,可选值为数组。

  • maxAge:设置缓存时间,单位为秒。

结语

跨域问题在前端开发中特别常见,通过 hapi-cors-headers 这个 npm 包,我们可以快速解决跨域请求的问题。不仅如此,hapi-cors-headers 还提供更多灵活的跨域策略配置,帮助我们更好地掌控跨域请求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/57892

纠错
反馈