最近写的项目部分接口需要跨域,我是这么做的:
fetch(url) 发现没有 CORS 错误。preflight 预检请求,该请求是 options 方法,预检后才会尝试发送实际的请求。const express = require('express');
const app = express();
// 处理预检请求的中间件
app.options('*', (req, res) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
res.status(200).send();
});
// 处理实际请求的路由
app.get('/api/data', (req, res) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
// 处理业务逻辑并发送响应
res.json({ message: 'Hello, world!' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});