如何在Node.js服务器中设置?Access-Control-Allow-Origin
时间: 2024-06-19 12:01:10 浏览: 14
在Node.js服务器中设置`Access-Control-Allow-Origin`是为了允许跨域资源共享(Cross-Origin Resource Sharing, CORS)。这个头信息通常在响应头中发送,告诉浏览器当前资源可以从指定的源(origin)访问。当你处理来自不同源的HTTP请求时,你需要确保设置这个头,因为默认情况下浏览器会阻止这种跨域请求。
以下是如何在Express.js服务器中设置`Access-Control-Allow-Origin`:
```javascript
const express = require('express');
const app = express();
// 允许所有来源访问
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Accept');
// 对于OPTIONS请求(预检请求),只返回头信息,不返回主体
if (req.method === 'OPTIONS') {
res.status(204).end();
} else {
next();
}
});
// 具体路由处理
app.get('/api/resource', yourHandlerFunction);
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
在这个例子中,`'*'`表示允许任何源,如果你只想允许特定的源,可以替换为相应的URL或正则表达式。对于预检请求(OPTIONS),我们简单地返回一个空响应,不包含主体,以告知客户端服务器支持跨域请求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)