📅  最后修改于: 2023-12-03 15:07:44.727000             🧑  作者: Mango
CORS,全称为跨域资源共享,是一种通过在响应头中添加一些信息来告诉浏览器是否允许网页从别的域访问资源的标准,它是浏览器实现的安全机制,用于限制 Web 应用程序对不同源的资源的访问。
由于浏览器的同源策略限制,跨域请求默认是不被允许的,所谓同源是指协议、域名、端口都相同。于是,当我们在一个网页上向另一个域名请求数据时,我们必须要通过 CORS 或其他技术来实现。
Node.js 中使用 CORS 比较简单,只需要安装一个中间件即可。
在终端中使用以下命令安装 CORS 模块:
npm install cors --save
在应用程序中引入 CORS 模块并使用中间件:
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/api/test', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => console.log('Server started on port 3000!'));
在上面的例子中,我们首先引入了 express 和 cors 模块,然后在应用程序中使用了 cors 中间件。最后,在 /api/test 路径上定义了一个简单的 GET 请求响应。
要注意的是,当我们在应用程序中使用了 CORS 中间件后,在响应头中会默认添加 Access-Control-Allow-Origin 的值为 "",即允许所有来源的跨域请求。除了 "",我们可以根据需要设置特定的域名或多个域名,如:
// 允许单个域名的请求
app.use(cors({
origin: 'http://example.com'
}));
// 允许多个域名的请求
app.use(cors({
origin: ['http://example1.com', 'http://example2.com']
}));
在 Node.js 中使用 CORS 模块非常简单,只需要安装并在应用程序中使用中间件即可实现跨域请求。同时,我们要注意 Access-Control-Allow-Origin 的值的设置,根据需要设置特定的域名或多个域名。