CORS for JavaScript (Node.js): 完整指南与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

CORS 库 for JavaScript (Node.js): 完整指南

\n\n
\n

1. 什么是 CORS 以及为什么需要它

\n

\n CORS(跨源资源共享) 是一种在浏览器中实现的安全机制,用于控制从另一个域名(源)加载的网页对资源(API、字体、脚本)的访问。默认情况下,浏览器会阻止由脚本发起的 HTTP 请求(例如通过 fetch 或 XMLHttpRequest),如果这些请求指向与加载页面不同的域名。这可以防止 CSRF(跨站请求伪造)攻击和数据泄露。\n

\n

\n Node.js 和 Express 的 cors 库是一种中间件,允许开发者在服务器端轻松配置和管理 CORS 策略。无需手动编写标头(Access-Control-Allow-Origin、Access-Control-Allow-Methods 等)和处理预检请求(使用 OPTIONS 方法的 preflight 请求),该库自动完成整个过程。它集成到 Express 的请求处理链中,并向响应添加必要的标头。\n

\n

\n 为什么需要它? 如果您正在开发一个 Node.js API,该 API 将被前端应用程序(React、Vue、Angular)、移动应用程序或来自另一个域名的第三方服务(例如,api.mysite.com 用于 app.mysite.com)使用,那么您必须配置 CORS。否则,浏览器将直接阻止请求,用户将在控制台中看到错误。cors 库使这种配置变得灵活、安全且简单。\n

\n
\n\n
\n

2. 安装

\n

通过包管理器 npm(Node 包管理器)进行安装。请确保您已安装 Node.js 和 npm。

\n
npm install cors
\n

安装后,该包将被添加到 node_modules 中,并且其记录将出现在 package.json 文件中。

\n

如果您使用 yarn:

\n
yarn add cors
\n
\n\n
\n

3. 快速入门 — 最小工作示例

\n

使用 CORS 的最简单方法是将其对所有请求启用。这适用于开发或公共 API,其中允许从任何域名进行访问。

\n
const express = require('express');\nconst cors = require('cors');\n\nconst app = express();\n\n// 为所有路由启用 CORS\napp.use(cors());\n\napp.get('/api/data', (req, res) => {\n    res.json({ message: '此响应允许来自所有源!' });\n});\n\napp.listen(3000, () => {\n    console.log('服务器在端口 3000 上运行');\n});
\n

在此示例中,来自任何域名(例如 http://localhost:8080 或 https://example.com)对 /api/data 的任何请求都将被成功处理。浏览器不会阻止响应。

\n
\n\n
\n

4. 主要方法/函数/类

\n

cors 库提供了一个主要函数 — cors(options),它返回一个中间件函数。然而,设置通过 options 对象传递,这提供了极大的灵活性。让我们看看 8 个关键选项和方法。

\n\n

4.1. cors() — 基本配置(允许所有)

\n

签名: cors(options?: CorsOptions)

\n

功能: 创建一个中间件,向响应添加 CORS 标头。不带参数时,允许从任何源访问。

推荐