cors(跨域资源共享)是一个 Node.js 中常用的包,用于管理跨域 HTTP 请求。下面是一些 cors 常见的用法:
-
基本用法:允许跨域请求,不带任何配置。这将允许来自任何域的请求。
const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors()); -
指定允许的来源:通过配置
origin选项,你可以指定哪些域名可以访问你的 API。const corsOptions = { origin: 'http://example.com', // 允许 example.com 访问 }; app.use(cors(corsOptions)); -
允许多个来源:你可以使用数组来指定多个允许的来源。
const corsOptions = { origin: ['http://example1.com', 'http://example2.com'], }; app.use(cors(corsOptions)); -
支持预检请求:当使用一些 HTTP 方法(如 PUT、DELETE、以及带自定义标头的请求)时,浏览器会先发送一个预检请求(OPTIONS 请求)。你可以通过
methods和preflightContinue选项来处理这些预检请求。const corsOptions = { origin: 'http://example.com', methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', preflightContinue: false, // 禁用预检请求处理 }; app.options('*', cors(corsOptions)); app.use(cors(corsOptions)); -
配置标头:你可以使用
allowedHeaders选项来指定允许的标头。这对于控制客户端在请求中可以设置哪些标头很有用。const corsOptions = { origin: 'http://example.com', allowedHeaders: 'Content-Type,Authorization', }; app.use(cors(corsOptions)); -
使用通配符:你可以使用通配符
*允许任何来源、任何方法,但请小心使用它,因为这可能导致安全问题。const corsOptions = { origin: '*', methods: '*', }; app.use(cors(corsOptions));
这些只是 cors 包的一些常见用法示例。根据你的具体需求,你可以根据文档中的更多配置选项来自定义 cors 行为。请注意,cors 包不仅适用于 Express 应用,还适用于其他 Node.js HTTP 服务器。