切换模式
跨域设置
使用 CORS 中间件
CORS 是一个流行的 Node.js 中间件,可以方便地解决跨域问题。
安装 CORS 中间件
bash
npm install corsnpm install cors在 Express 应用中使用 CORS
js
const express = require('express');
const cors = require('cors');
const app = express();
// 使用 CORS 中间件
app.use(cors());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});const express = require('express');
const cors = require('cors');
const app = express();
// 使用 CORS 中间件
app.use(cors());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});这种方式会允许所有域名访问你的服务,但在生产环境中,建议指定具体的允许访问的域名,以提高安全性
指定允许访问的域名
js
const express = require('express');
const cors = require('cors');
const app = express();
// 配置 CORS 中间件,仅允许特定域名访问
const corsOptions = {
origin: 'https://example.com', // 允许访问的域名
optionsSuccessStatus: 200, // 预检请求的默认成功状态码
methods: 'GET,POST,PUT,DELETE', // 允许的 HTTP 方法
allowedHeaders: 'Content-Type,Authorization', // 允许的请求头
credentials: true, // 允许携带凭证信息(如 Cookies)
};
app.use(cors(corsOptions));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});const express = require('express');
const cors = require('cors');
const app = express();
// 配置 CORS 中间件,仅允许特定域名访问
const corsOptions = {
origin: 'https://example.com', // 允许访问的域名
optionsSuccessStatus: 200, // 预检请求的默认成功状态码
methods: 'GET,POST,PUT,DELETE', // 允许的 HTTP 方法
allowedHeaders: 'Content-Type,Authorization', // 允许的请求头
credentials: true, // 允许携带凭证信息(如 Cookies)
};
app.use(cors(corsOptions));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});详细说明:
origin:指定允许访问的域名,可以是单个域名或一个数组,数组中的域名都会被允许访问。optionsSuccessStatus:预检请求的默认成功状态码,默认为 204,可以设置为 200。methods:指定允许的 HTTP 方法,默认为 GET、POST、PUT、DELETE。allowedHeaders:指定允许的请求头,默认为 Content-Type、Authorization。credentials:是否允许携带凭证信息(如 Cookies),默认为 false。