CORS(Cross-Origin Resource Sharing)是一种机制,允许在一个域下的网页向另一个域提交网络请求。通常,在跨域请求时浏览器会阻止该请求。要解决这个问题,我们可以使用 npm 包 cors。
安装
要使用 cors,首先需要在 Node.js 项目中安装它。可以通过以下命令进行安装:
npm install cors
使用
安装完 cors 后,我们可以在代码中引入它:
const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors());
接着,我们就可以在服务端处理跨域请求了。
配置
cors() 函数可以接收一些参数,用于配置跨域请求的细节。以下是常用的配置参数:
- origin:指定哪些源(域名、协议和端口)可以访问资源。默认值为
*
,表示任何源都可以访问。 - methods:指定允许的 HTTP 请求方法。默认值为 GET、HEAD 和 POST。
- allowedHeaders:指定允许的自定义请求头列表。默认为空数组。
- exposedHeaders:指定允许客户端访问的响应头列表。默认为空数组。
- credentials:指定是否允许发送身份凭证(如 cookie、HTTP 认证或客户端 SSL 证书)。默认为 false。
- maxAge:指定预检请求的有效期(单位为秒),即在此时间段内,浏览器不需要再次发送预检请求进行验证。默认为 0,表示每次请求都需要发送预检请求。
以下是一个完整的配置示例:
app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['Content-Type', 'Authorization'], exposedHeaders: ['ETag'], credentials: true, maxAge: 86400 // 24 小时 }));
示例代码
以下是一个使用 cors 的完整示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- --- - ---------- ---------------- -------------------- ----- ---- -- - ----- ---- - - ----- ----- ---- -- -- --------------- --- ---------------- -- -- ----------------------
在上述示例中,我们通过 app.use(cors())
开启了跨域请求功能,并在 /api/data
接口中返回了一组数据。当客户端发起跨域请求时,该接口也能够正常响应。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/44345