在vue中如何在api中在返回响应时添加Access-Control-Allow-Origin头部,指定允许的源地址。
时间: 2024-11-25 07:12:27 浏览: 17
在Vue.js中处理CORS(跨域资源共享)通常发生在后端API服务器上。以下是一个使用Node.js Express框架的例子,它在响应发送前设置了`Access-Control-Allow-Origin`头部:
```javascript
const express = require('express');
const app = express();
// 使用中间件处理CORS
app.use((req, res, next) => {
// 设置允许的源地址
res.setHeader('Access-Control-Allow-Origin', '*'); // 或者指定特定源,例如:'http://localhost:5173'
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
// 如果请求方法是"OPTIONS",则直接返回204(无内容)
if (req.method === 'OPTIONS') {
res.status(204).end();
} else {
next();
}
});
// API路由
app.get('/api/echarts', (req, res) => {
// 这里是你实际的API逻辑
// ...
res.json({ yourData });
});
app.listen(9091, () => {
console.log('Server started on port 9091');
});
```
在这个例子中,当接收到一个请求时,无论其来源,都会设置相应的CORS头。然后,如果这是一个预检请求(Preflight Request,即OPTIONS方法),就简单地返回一个204状态码,非预检请求则继续执行。
注意,生产环境中通常不会使用`'*'`作为允许来源,而是指定具体的源地址,以防止不必要的跨域。
阅读全文