如何在Node.js后端设置Access-Control-Allow-Origin?
时间: 2024-10-04 14:00:25 浏览: 35
在Node.js中设置`Access-Control-Allow-Origin`通常发生在Express或其他基于HTTP的Web框架的中间件里。这里是一个基本的例子,如果你使用的是Express:
```javascript
const express = require('express');
const app = express();
// 允许所有来源请求
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
// 如果请求是OPTIONS类型的预检请求(CORS预检)
if (req.method === 'OPTIONS') {
res.status(204).send(); // 返回空响应
} else {
next();
}
});
// 其他路由...
```
在这个例子中,`'*'` 表示对所有请求生效,你可以替换为特定的URL。`"Access-Control-Allow-Origin"` 设置允许的源,`"*"` 让所有的源都可以访问。对于预检请求(OPTIONS),我们简单地返回一个空响应,以告知客户端其后续的GET/POST等请求是可以被接受的。
请注意,在生产环境中,最好仅允许特定的源,以防恶意攻击。如果是API用于公共,可以考虑使用 `req.headers.origin` 来确定允许的源列表。
阅读全文