npm 包 node-cors 使用教程

阅读时长 5 分钟读完

最近,在开发前端应用的过程中,我们经常需要向后端请求数据。然而,由于安全性的考虑,常常需要跨域请求数据。因此,出现了一种名为 CORS(Cross-Origin Resource Sharing)的技术,能够解决跨域请求数据的问题。而 node-cors 就是用来处理 CORS 的 npm 包之一。

node-cors 简介

node-cors 是一款处理 CORS 请求的 Node.js 中间件包。它能让后端服务支持跨域请求,支持定制化设置请求头参数和响应头参数,解决跨域请求时可能产生的安全问题。

安装 和 引入

通过 npm 包管理器安装 node-cors:

在项目中引入 node-cors:

使用说明

在 Express 应用中使用 node-cors 中间件,只需要在创建应用对象实例的时候,通过调用 cors() 便可启用跨域的处理。如:

通过在中间件函数调用时,使用 {options} 标志,可以自定义所需的选项。如:

main options

  • origin {String | Function}: 可选,默认为 * 代表全部来源,原请求的地址。如果指定了单个域名或子域名,只有从此处发起的请求才被允许。也可以传入一个返回字符串或者一个返回 boolean 值的函数,实现定制化的域名匹配规则。

  • methods {String[]}: 可选,默认为 GET、HEAD、PUT、PATCH、POST 和 DELETE。用于指定对于特定的请求方法,可以发送的请求头白名单。

response options

  • exposedHeaders {String[]}: 可选。用于定义客户端可以访问的响应头的名称。

  • credentials {Boolean}: 可选,默认为 false,CORS 预检请求中是否允许使用 cookie 、认证 token 等凭证。

  • maxAge {Number}: 可选,默认为 86400。在发送预检请求之前,浏览器可以将响应缓存下来的秒数。

middleware options

  • preflightContinue {Boolean}: 可选,默认为 false。控制是否继续处理当前请求,还是只是终止处理链式回调。当设为 false 时,意味着遇到 CORS 失败之后,不会再继续处理后续的路由或中间件,反之,请求会继续往下执行下去。

  • optionsSuccessStatus {Number}: 可选,默认为 204 (请求已成功执行,但是客户端不应该更改里面的视图)。接收 options 请求的返回码,可以用来自定义成功状态码如 200 或 202。

configuration function

  • cors({options}):可选配置,包含可选项对象的回调函数。这是用于创建 cors 实例的工厂函数,可以用来生成多个节点使用不同选项的 Node.js Express 服务。

示例代码

假设我们有一个 Node.js Express 后端 web 应用,需要在前端 JavaScript 项目中跨域请求,同时需要启用如下设置:

  • 指定相应的来源增加安全;
  • 响应预检请求可以使用 cookie 等敏感数据;
  • 跨域响应可以使用自定义请求头;
  • 性能优化,对请求进行缓存。
-- -------------------- ---- -------
----- ------- - -------------------
----- ------------ - -------------------------
----- ---- - ----------------
----- --- - ----------

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

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

本文对 node-cors 中间件的基本使用方法做了详细说明,介绍了 npm 包 node-cors 的作用和安装方法,以及不同功能选项的用法。掌握了 node-cors 的使用,大大提升了前端跨域请求的能力。

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

纠错
反馈