切换模式
跨域设置
使用 CORS 中间件
CORS 是一个流行的 Node.js 中间件,可以方便地解决跨域问题。
安装 CORS 中间件
bash
npm install cors
npm 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。