使用cors
中间件时,你可以通过配置对象来设置特定域名的跨域请求。以下是如何设置特定域名的跨域请求的示例:
-
安装
cors
模块: 如果你还没有安装cors
模块,可以通过npm来安装:bash
npm install cors
-
设置特定域名的跨域请求: 你可以在
cors
中间件中使用origin
属性来指定允许的域名。以下是一些示例:javascript
const express = require('express'); const cors = require('cors'); const app = express(); // 允许特定域名的跨域请求 app.use(cors({ origin: 'https://www.zipingshu.com/' // 只允许zipingshu.com域名的跨域请求 })); // 或者,允许多个特定域名的跨域请求 app.use(cors({ origin: ['https://www.zipingshu.com/', 'https://pingshu.xyz/'] // 允许zipingshu.com和pingshu.xyz域名的跨域请求 })); // 你也可以使用函数来动态设置允许的域名 app.use(cors({ origin: (origin, callback) => { if (['https://www.zipingshu.com', 'https://pingshu.xyz/'].includes(origin)) { callback(null, true); } else { callback(new Error('Not allowed by CORS')); } } })); app.get('/', (req, res) => { res.json({ message: 'This is a CORS-enabled response!' }); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
-
处理预检请求:
cors
中间件会自动处理OPTIONS预检请求。你不需要手动处理这些请求,cors
中间件会根据你的配置自动返回适当的响应。 -
允许带凭据的请求: 如果你需要支持带凭据的请求(如Cookies),可以设置
credentials
属性为true
:javascript
app.use(cors({ origin: 'https://pingshu.xyz', credentials: true }));
通过以上步骤,你可以使用cors
中间件来设置特定域名的跨域请求。这可以帮助你控制哪些域名可以访问你的资源,同时确保跨域请求的安全性。