写出关于解决前后端分离的跨域问题的代码
时间: 2024-06-09 11:04:58 浏览: 167
前后端分离的跨域问题可以通过在后端设置响应头来解决。以下是一个使用 Node.js 和 Express 框架的示例代码:
```javascript
const express = require('express');
const app = express();
// 允许跨域访问的域名
const allowedOrigins = ['http://example.com', 'https://example.com'];
app.use((req, res, next) => {
const origin = req.headers.origin;
if (allowedOrigins.includes(origin)) {
// 设置响应头,允许跨域访问
res.setHeader('Access-Control-Allow-Origin', origin);
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
}
next();
});
app.get('/data', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
在上面的代码中,我们首先定义了一个数组 `allowedOrigins`,包含了允许跨域访问的域名。然后在使用中间件的时候,我们检查请求头中的 `Origin` 字段是否在允许的列表中,如果是,就设置响应头,允许跨域访问。
最后我们实现了一个简单的路由,当访问 `/data` 路径时,返回一个字符串 "Hello, world!"。
这样,前端就可以通过 ajax 或 fetch 请求来访问我们后端的数据了。
阅读全文